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'
相關文章
- Android開發:build.gradle 配置指南AndroidUIGradle
- build.gradle裡repositories的mavenCentral實現原理解析UIGradleMaven
- AndroidStudio之app/build.gradle問題集錦AndroidAPPUIGradle
- Android學習筆記之build.gradle檔案Android筆記UIGradle
- build.gradle中正確地匯入RecyclerView依賴UIGradleView
- gradle中的build script詳解GradleUI
- Android工程gradle詳解AndroidGradle
- Android Studio Gradle 常用配置詳解AndroidGradle
- Android Gradle defaultConfig詳解及實用技巧AndroidGradle
- 詳解Android Gradle生成位元組碼流程AndroidGradle
- Android 詳解Gradle(3.1.4)實現多渠道打包AndroidGradle
- Gradle核心思想(五)通俗易懂的Gradle外掛講解Gradle
- 通俗易懂的Gradle外掛講解Gradle
- 深入瞭解gradle和maven的區別GradleMaven
- Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的詳細對比MavenGradle
- Gradle 簽名的配置檔案 gradle.propertiesGradle
- 使用idea新建springBoot+Gradle專案(超詳細)IdeaSpring BootGradle
- Spring Boot開發(Gradle+註解)Spring BootGradle
- 解決Android Studio每次匯入專案都會下載Gradle和Android Gradle plugin的問題AndroidGradlePlugin
- Gradle Resolve dependecies 很長時間的解決辦法Gradle
- Android Studio之Gradle和Gradle外掛的區別AndroidGradle
- 【Android 修煉手冊】Gradle 篇 -- Gradle 的基本使用AndroidGradle
- Gradle系列之Gradle外掛Gradle
- Gradle系列(四) Gradle外掛Gradle
- gradleGradle
- springboot gradle demo (使用 Gradle 構建的 Spring Boot專案)Spring BootGradle
- Jenkins報錯'Gradle build daemon disappeared unexpectedly'的問題解決JenkinsGradleUIAPP
- groovy-gradle-setting.gradle和sourceGradle
- 【Java】【Gradle】Gradle構建SpringBoot專案,Gradle模組化管理JavaGradleSpring Boot
- Android Studio下載Gradle超時解決方案AndroidGradle
- Gradle系列之認識Gradle任務Gradle
- Gradle系列之Android Gradle基礎配置GradleAndroid
- 史上最快、最強大的 Gradle 5.0 釋出,新特性全解!Gradle
- 解決Android studio中gradle依賴下載太慢的問題AndroidGradle
- Gradle核心思想(六)自定義Gradle外掛的三種方式Gradle
- Gradle核心思想(四)看似無用,實則重要的Gradle WrapperGradleAPP
- 不得不學之「 Gradle」 ④ Gradle 任務Gradle
- 不得不學之「 Gradle」 ⑤ Gradle 外掛Gradle