gradle的build.gradle詳解
一個專案中只放置一個build.gradle,build.gradle可以理解為一個Project框架,提供了對一個專案的基本配置。
project的常用:
屬性:
- group
- name(artifact)
- version 專案版本(全域性的)
- sourceCompatibility = 1.8 // source使用的jdk版本
- targetCompatibility = 1.8 // 編譯時使用的jdk版本或者更新的java虛擬機器相容
- compileJava.options.encoding = 'UTF-8'
- compileTestJava.options.encoding = 'UTF-8'
方法:
- apply 應用外掛
- dependencies 新增依賴
- repositories 新增倉庫
- task 定義任務
- buildscript
- allprojects
- subprojects
- configurations
gradle中的repositories
//repositories是project一個方法,閉包作為引數
repositories {
mavenCentral()
}
這個是用來指定使用什麼庫的,它可以存在buildScript塊、allprojects塊、根級別塊。
buildScript塊的repositories主要是為了Gradle指令碼自身的執行,獲取指令碼依賴外掛。
根級別的repositories主要是為了當前專案提供所需依賴包,比如log4j、spring-core等依賴包可從mavenCentral倉庫獲得。
allprojects塊的repositories用於多專案構建,為所有專案提供共同所需依賴包。而子專案可以配置自己的repositories以獲取自己獨需的依賴包。
gradle中的常用屬性可以寫在gradle.properties中
一個gradle檔案中的屬性有很多,比如 jdk版本,編碼型別,dependency 版本。如果都放在 build.gradle 中勢必不好管理哦(經驗哦),那麼gradle預設提供了一個 gradle.properties 檔案。用這個檔案來管理所有的屬性在合適不過了
Gradle 外掛(Plugins)
Gradle 也可以用下面的方式宣告使用的外掛:
// build.gradle
plugins {
id 'com.example.plugin', version '1.0'
}
其實是從 Gradle 官方的外掛倉庫 https://plugins.gradle.org/m2/ 下載的。
但是,眾所周知的原因,某些地區會連不上,導致下載不到需要的外掛,例如出現如下錯誤:
* What went wrong:
A problem occurred configuring root project 'MyApp'.
> Could not resolve all files for configuration ':classpath'.
> Could not download jimfs.jar (com.google.jimfs:jimfs:1.1)
> Could not get resource 'https://plugins.gradle.org/m2/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar'.
> Could not HEAD 'https://plugins.gradle.org/m2/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar'.
> Connect to d29vzk4ow07wi7.cloudfront.net:443 [d29vzk4ow07wi7.cloudfront.net/54.192.84.6, d29vzk4ow07wi7.cloudfront.net/54.192.84.168, d29vzk4ow07wi7.cloudfront.net/54.192.84.128, d29vzk4ow07wi7.cloudfront.net/54.192.84.173] failed: Read timed out
又或者,外掛是不對外的,存在某個私有倉庫的,該如何修改或者新增額外的私有倉庫地址呢?
直接修改 settings.gradle
來新增其它倉庫:
// settings.gradle
pluginManagement {
repositories {
maven {
url 'http://examle.com/maven-repo'
}
gradlePluginPortal()
}
}
當然你也可以使用老的方式應用外掛:
buildscript {
repositories {
maven {
url 'http://examle.com/maven-repo'
}
}
dependencies {
classpath 'com.example.plugin:gradle-plugin:1.0'
}
}
apply plugin: 'com.example.plugin'
dependencies
例如根目錄依賴配置單專案專案依賴:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
多專案構建
settings.gradle作用就是用於多專案構建,一般像這樣:
rootProject.name = 'ant'
include 'framework-eureka'
include 'framework-gateway'
include 'module-common'
include 'module-test'
相關文章
- Gradle for Android系列之二 build.gradle檔案GradleAndroidUI
- Gradle for Android 第二篇( Build.gradle入門 )GradleAndroidUI
- Android開發:build.gradle 配置指南AndroidUIGradle
- build.gradle中正確地匯入RecyclerView依賴UIGradleView
- Android Studio 編輯Build.gradle時很卡AndroidUIGradle
- build.gradle裡repositories的mavenCentral實現原理解析UIGradleMaven
- Android學習筆記之build.gradle檔案Android筆記UIGradle
- AndroidStudio之app/build.gradle問題集錦AndroidAPPUIGradle
- gradle中的build script詳解GradleUI
- Android工程gradle詳解AndroidGradle
- Gradle 配置 BuildConfig詳解GradleUI
- gradle android基本配置詳解GradleAndroid
- Gradle自定義外掛詳解Gradle
- Android Studio Gradle 常用配置詳解AndroidGradle
- 詳解Android Gradle生成位元組碼流程AndroidGradle
- Android 詳解Gradle(3.1.4)實現多渠道打包AndroidGradle
- Android Gradle defaultConfig詳解及實用技巧AndroidGradle
- Android多渠道打包工具Gradle外掛使用詳解AndroidGradle
- Gradle核心思想(五)通俗易懂的Gradle外掛講解Gradle
- 通俗易懂的Gradle外掛講解Gradle
- 深入瞭解gradle和maven的區別GradleMaven
- Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的詳細對比MavenGradle
- Android中Gradle詳細實用指南AndroidGradle
- [Gradle] Gradle 簡介Gradle
- Gradle 簽名的配置檔案 gradle.propertiesGradle
- SDWebImage 的詳解Web
- Spring Boot開發(Gradle+註解)Spring BootGradle
- Gradle系列之Gradle外掛Gradle
- Gradle系列(四) Gradle外掛Gradle
- 史上最詳細的Android Studio系列教程六--Gradle多渠道打包AndroidGradle
- Gradle Resolve dependecies 很長時間的解決辦法Gradle
- gradleGradle
- 【Android 修煉手冊】Gradle 篇 -- Gradle 的基本使用AndroidGradle
- Gradle For Android(四)Gradle 編譯中神祕的混淆GradleAndroid編譯
- 詳解 go 的切片Go
- CMAKE的使用詳解
- ORACLE的HINT詳解Oracle
- JavaScript中的this詳解JavaScript