- 目標不是多專業,僅僅夠用足矣
gradle 安裝
項目代碼
下載gradle
- https://gradle.org/releases/
- gradle -v
下載jdk
- jdk8
下載groovy
- http://www.groovy-lang.org
- groovy-2.5.8
- groovy 和 gradle的關系
- 類似maven的pom依賴xml語法
案例工具 idea
gradle vs maven
- 在Maven世界中,一個依賴項有6種scope,分別是complie(默認)、provided、runtime、test、system、import。
而grade將其簡化為了4種,compile(編譯時)、runtime(運行時)、testCompile(測試編譯時)、testRuntime(測試運行時) - Gradle支持動態的版本依賴。在版本號后面使用+號的方式可以實現動態的版本管理
gradle-sample項目構建
gradle常用要點
對標maven
- pom 替換為 build.gradle和settings.gradle
- 復用大佬們的代碼 pom和build.gradle,沖擊力還是蠻強悍的
<properties> <kaptcha.version>2.3</kaptcha.version> </properties> <dependencies> <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <version>${kaptcha.version}</version> <classifier>jdk15</classifier> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies>
dependencies { compile('org.springframework:spring-core:2.5.6') compile('org.springframework:spring-beans:2.5.6') compile('org.springframework:spring-context:2.5.6') compile('com.google.code.kaptcha:kaptcha:2.3:jdk15') testCompile('junit:junit:4.7') }
settings.gradle 和 build.gradle
- build.gradle - 文件包含項目構建所使用的腳本
- settings.gradle - 文件將包含必要的一些設置
例如 任務或項目之間的依懶關系等
構建腳本概要
- 【gradle-script】
- 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-sample】
- api/apiElements 與 implementation 的區別
- gradle 從 3.4 開始,compile 已經被廢棄了,
取而代之的是 api | implementation,倆個我們都可以用 - api - 同模塊本地依賴對外開放
- implementation - 同模塊本地依賴時依賴隔離
- gradle 從 3.4 開始,compile 已經被廢棄了,
多項目構建
- 【gradle-module】
發布
- 【gradle-deploy】
- Gradle默認提供maven-publish插件
版本沖突解決
- 排除
- 強制指定一個版本
- 通過 help -> dependencies 任務可以查詢詳細的依賴
常用配置更改
- 敏感信息外部配置
- gradle.properties 機制
- 和maven一樣更換本地倉庫的位置
- 通過系統環境變量配置
- GRADLE_USER_HOME
- D:\gradle\gradleRepository
- 通過idea中指定
- 本地緩存路徑為
- D:\gradle\gradleRepository\caches\modules-2\files-2.1
- 通過系統環境變量配置
- 和maven一樣指定遠程私服
repositories { mavenLocal() maven { url "https://maven.aliyun.com/repository/public" } maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } jcenter() }
- 和maven配置一樣profile
- 和maven一樣 父級依賴機制
常用三方插件
- 插件的類型 腳本插件和二進制插件
- 自定義腳本插件 【gradle-script】
- 二進制插件
plugins { id 'java' }