接下來只要用 Idea IDE 來 open project-example.ipr 檔案,就可以引入 project 了, 之後每當
依賴更改
目錄結構更改
只要執行 gradle cleanIdea idea 就可以重新整理這三個檔案,Idea IDE 就會重新載入識別專案了。
我的經驗是不要使用 Idea IDE 來直接用 build.gradle 來開啟檔案,因為 Idea IDE 在解析 build.gradle 檔案時有其他操作,而且 Idea IDE 與 gradle 版本有時會不太相容,導致專案解析錯誤;而使用 gradle 來生成 Idea IDE 工程檔案的方式就不會有問題,而且速度更快,更容易debug。
從 官網 下載,解壓即可,並將 bin/gradle 命令加入到 path 中。
新建一個 gradle 專案
新建一個資料夾作為專案資料夾
mkdir project-example
cd project-example
使用 gradle 初始化
gradle init
然後目錄下會生成這些檔案
build.gradle // 構建指令碼檔案,主要的構建配置都在這裡寫
gradle // 存放gradle wrapper 執行配置和工具的資料夾,
gradlew // gradle wrapper 執行指令碼檔案,用來在沒有安裝 gradle 的情況下執行 gradle 命令。當然,第一次執行時會下載 gradle。
gradlew.bat // gradle wrapper 執行指令碼檔案的 windows 版
settings.gradle // 專案配置,指明根專案名字和引入的 module
修改 build.gradle 檔案,結果像下面這樣
/*
宣告外掛,宣告外掛的方式有兩種,下面這種是 2.* 版本之後的新的定義方式。可以宣告兩種外掛:
1. 官方內建外掛,如 java,idea。
2. 在 gradle 外掛中心註冊過的外掛,如第三個就是,這種要還要宣告版本。
宣告外掛的目的是因為外掛會提供很多 task,而每一個 task 就是一段構建指令碼,可以執行不同的任務。比如 compileJava,test 等。
*/
plugins {
id "java"
id "idea"
id "com.yangxiaochen.scaffold" version "1.0.2"
}
/*
宣告 group 和 版本,而 project 的名字在 settings.gradle 檔案中,而子 module ,或者又稱為 sub projects 的名字通常和資料夾名字一樣。
*/
group "com.yangxiaochen.gradle"
version "1.0.0-SNAPSHOT"
/*
宣告依賴倉庫,這裡使用的是 jcenter,也可以使用其他的如 mavenCentral 等。也可以宣告多個,會按順序查詢。
*/
repositories {
jcenter()
}
/*
宣告依賴
*/
dependencies {
compile "org.slf4j:slf4j-api:1.7.21"
testCompile "junit:junit:4.12"
}
編輯 settings.gradle 檔案如下,聲明瞭project name
rootProject.name = "project-example"
// include "sub-project"
引入到 Idea IDE 中
gradle idea
目錄下新生成了三個檔案
project-example.iml
project-example.ipr
project-example.iws
接下來只要用 Idea IDE 來 open project-example.ipr 檔案,就可以引入 project 了, 之後每當
依賴更改
目錄結構更改
只要執行 gradle cleanIdea idea 就可以重新整理這三個檔案,Idea IDE 就會重新載入識別專案了。
我的經驗是不要使用 Idea IDE 來直接用 build.gradle 來開啟檔案,因為 Idea IDE 在解析 build.gradle 檔案時有其他操作,而且 Idea IDE 與 gradle 版本有時會不太相容,導致專案解析錯誤;而使用 gradle 來生成 Idea IDE 工程檔案的方式就不會有問題,而且速度更快,更容易debug。
引入之後,還需要生成 src 資料夾和 sub project
gradle createSrc
gradle idea
// 或者直接連起來些,像這樣
gradle createSrc idea
gradle createModule --name foo idea
createSrc 和createModule都是外掛 com.yangxiaochen.scaffold裡的 task,而 idea和cleanIdea 是外掛 idea提供的 task
引入一個 gradle 專案
跟上一節建立一個 gradle 專案類似,引入idea外掛,然後生成 Idea IDE 的工程檔案,再 open 即可