Gradle學習
第1章 介紹
第2章 準備使用Gradle
2-1 Gradle安裝
2-2 Groovy基礎知識-理論介紹
2-3 Groovy基礎知識-與Java比較
在idea中,Tools—>Groovy Console打開
- 分號可選
- 自動生成getter、setter方法
- 可以直接用對象.屬性的方法來獲取屬性值
2-4 Groovy基礎知識-高效特性
- assert在任何地方都可以執行
- def 變量 (類似Js的var)
- 括號可選
- 字符串三種表達
- 單引號(僅僅就是字符串)
- 雙引號(可以使用${變量名}插入變量)
- 三引號(可以換行)
- 集合API
- def myList = [‘elemen1’,‘element2’],並使用<<添加元素(對應到Java中爲ArrayList)
- def myMap = [‘key1’:value1,‘key2’:value2],使用集合名.屬性名添加元素或修改元素值(對應到Java中爲LinkedHashMap)
- 閉包
第3章 第一個Gradle項目
File—>New—>Project—>Gradle—>Java
- GroupId一般爲公司域名倒着寫
- ArtifactId爲項目編號,唯一
- Version版本號
—>Use local gradle distribution—>finish
生成build.gradle,其中
apply plugin: 'java’表示使用Java插件
sourceCompatibility表示源文件適應的版本
repositories表示倉庫
dependencies表示依賴
gradle兼容maven,因此兩者的目錄結構一樣。將寫好的項目用gradle運行之後,在idea右側有gradle選項,其中Tasks下的build下的jar的功能就是把當前的源文件打成jar包,生成的jar包放在build下的libs中。
運行Java程序
使用Terminal輸入java -classpath build/libs/jar包名 要運行的類的全限定類名
即可運行jar包
運行web程序
在build.gradle中添加apply plugin: ‘war’
在右側使用war將web應用打包成war包放到tomcat的webapp目錄中,啓動tomcat即可使用web程序
第4章 高級應用
4-1 構建腳本概要
4-2 自定義任務
def createDir = {
path ->
File dir = new File(path)
if (!dir.exists()) {
dir.mkdirs();
}
}
task makeJavaDir() {
def paths = ['src/main/java','src/test/java','src/main/resources','src/test/resources']
doFirst {
paths.forEach(createDir)
}
}
task makeWebDir() {
dependsOn 'makeJavaDir'
def paths = ['src/main/webapp','src/test/webapp']
doLast {
paths.forEach(createDir)
}
}
在右側gradle中選擇Tasks下的other中可以找到自定義的任務
4-3 構建生命週期
上一節中,doFirst和doLast的代碼爲執行代碼,其它均爲配置代碼
4-4 依賴管理
工件座標:通過group、name、version可以唯一確定一個jar包
常用倉庫:
依賴的傳遞性:
自動化依賴管理:
4-5 解決版本衝突
gradle默認使用最新的jar包來解決依賴衝突,因爲一般軟件都是向下兼容的
4-6 發佈
在build.gradle中添加 apply plugin: 'maven-publish’和如下代碼,之後執行publish任務
publishing {
publications {
myPublish(MavenPublication) {
from components,java
}
}
repositories {
maven {
name "myRepo"
url "" //私服地址
}
}
}