2011年12月27日

Java 專案自動化建置之 Gradle 與 Eclipse 整合篇

Gradle 提供 Eclipse Plugin,讓熟悉 Eclipse IDE 的開發者,能夠方便進行整合。

使用這個 plugin 只需要在 build.gradle 增加一行宣告:

apply plugin: 'eclipse'

接著就可以執行以下任務(tasks):

#Cleans all Eclipse files.
gradle cleanEclipse

#Generates all Eclipse files.
gradle eclipse

如果要查看 plugin 提供哪些任務名稱,只要執行:

gradle tasks

當執行「gradle eclipse」成功後,專案目錄下會多出 3 個項目:

.classpath
.project
.settings

也就是 Eclipse Plugins 幫專案自動產生 Eclipse 專案所需的配置檔。

其中值得注意的是 .classpath 的部份,它會將 build.gradle 的「dependencies」所指定的相依套件(*.jar)引入,把這些套件實際的 jar 檔案路徑寫到 .classpath。

例如,以下是 commons-lang 的套件依賴宣告。

dependencies {
    compile 'org.apache.commons:commons-lang3:3.1'
}

實際的路徑可能存在於:

~/.gradle/caches/artifacts-4/org.apache.commons/commons-lang3/    c12498cf18507aa6433a94eb7d3e77d5/sources/commons-lang3-3.1-sources.jar

通常 Gradle 會把 Jar 檔案下載到 User Home 的 .gradle 隱藏資料夾,以方便不同專案共用相同的 Jar 檔案。

因為 .classpath 必須加入這些 dependencies 的 Jar 檔案路徑,對 Eclipse 來說才能正確找到 classpath,所以每次修改完 dependencies 之後,建議先將 Eclipse 的專案關閉(close project),再重新執行「gradle cleanEclipse」及「gradle eclipse」讓專案設定重新寫入;之後再重新用 Eclipse 開啟專案(open project)、並重新整理(refresh、按F5)。

只要 .classpath 正確產生,在 Eclipse 就可以對這些相依套件提供的類別,得到 auto-build、auto-completion 等編輯器輔助功能。


我在 GitHub 提供一組 Gradle + Eclipse 的簡單範例,僅供參考: https://github.com/lyhcode/gradle-examples/tree/master/eclipse

歡迎對 Groovy / Gradle / Grails 有興趣的朋友,加入 Groovy Taiwan 的粉絲專頁,將不定期提供相關的技術發展訊息。

3 則留言:

  1. 開始要來讀這門學問, 有機會跟您討教幾招

    回覆刪除
  2. 有興趣的話可以訂閱 Groovy Taiwan 的 FB專頁...歡迎多多交流^^

    回覆刪除
  3. 能不能麻烦楼主帮末等虾写一个简单点完整的gradle的demo(写点注释吧),网上根本找不到一个完整的demo。
    如果可以麻烦楼主发到:zsy61278045@hotmail.com

    回覆刪除

lyhcode by lyhcode
歡迎轉載,請務必註明出處!