本文由CSDN博客萬一博主翻譯,其它章節的翻譯請參見:html
http://blog.csdn.net/column/details/gradle-translation.htmljava
翻譯項目請關注Github上的地址:android
https://github.com/msdx/gradledocgit
本文翻譯所在分支:
github
https://github.com/msdx/gradledoc/tree/1.12。web
直接瀏覽雙語版的文檔請訪問:api
http://gradledoc.qiniudn.com/1.12/userguide/userguide.html。緩存
另外,Android 手機用戶可經過我寫的一個程序瀏覽文檔,帶緩存功能的,眼下0.2.1版本號兼容 android 2.2以上系統。地址例如如下:app
http://www.wandoujia.com/apps/com.githang.gradledoc
eclipse
翻譯不易,轉載請註明本文在CSDN博客上的出處:
http://blog.csdn.net/maosidiaoxian/article/details/46963851
關於我對Gradle的翻譯,以Github上的項目及http://gradledoc.qiniudn.com 上的文檔爲準。
若有發現翻譯有誤的地方,將首先在以上兩個地方更新。因時間精力問題,博客中發表的譯文基本不會同步改動。
Eclipse 插件生成Eclipse IDE所使用的文件,從而讓項目能夠導入 Eclipse ( - - )。它考慮到了外部依賴項 (包含相關聯的源文件和 javadoc 文件) 和項目依賴項。
從 1.0-里程碑-4 開始,WTP-generating 代碼被重構爲一個單獨的插件,叫作eclipse-wtp
。因此假設你對 WTP 集成有興趣。可以僅僅應用eclipse-wtp
插件。不然應用eclipse
插件就足夠了。這樣的變化是Eclipse用戶要求的,他們想利用war
或ear
插件,但又不想用 Eclipse WTP。在內部,eclipse wtp
也應用了eclipse
插件,因此你不需要同一時候應用這兩個插件。
Eclipse 插件生成的內容全然取決於使用了哪些其它的插件:
表 38.1. Eclipse 插件行爲
Eclipse 插件是開放的,以定製和提供一套標準化的鉤,用於加入和刪除生成的文件的內容。
要使用 Eclipse 插件,請在構建腳本中包括下面語句:
Eclipse 插件向你的projects 加入了大量的任務。您將使用的主要任務是eclipse
和cleanEclipse
任務。
Eclipse 插件向一個 project 加入了例如如下所看到的的任務。
表 38.2. Eclipse 插件 - 任務
任務名稱 | 依賴於 | 類型 | 描寫敘述 |
eclipse |
eclipseProject , eclipseClasspath ,eclipseJdt , eclipseWtpComponent , cleanEclipseWtpFacet |
Task |
會生成所有的 Eclipse 配置文件 |
cleanEclipse |
cleanEclipseProject , cleanEclipseClasspath , cleanEclipseJdt , cleanEclipseWtpComponent ,
|
Delete |
刪除所有的 Eclipse 配置文件 |
cleanEclipseProject |
- |
Delete |
刪除.project 文件。 |
cleanEclipseClasspath |
- |
Delete |
刪除.classpath 文件。 |
cleanEclipseJdt |
- |
Delete |
刪除.settings/org.eclipse.jdt.core.prefs 文件。 |
cleanEclipseWtpComponent |
- |
Delete |
刪除.settings/org.eclipse.wst.common.component 文件。 |
cleanEclipseWtpFacet |
- |
Delete |
刪除.settings/org.eclipse.wst.common.component 文件。 |
eclipseProject |
- |
GenerateEclipseProject |
生成的.project 文件。 |
eclipseClasspath |
- |
GenerateEclipseClasspath |
生成.classpath 文件。 |
eclipseJdt |
- |
GenerateEclipseJdt |
生成.settings/org.eclipse.jdt.core.prefs 文件。 |
eclipseWtpComponent |
- |
GenerateEclipseWtpComponent |
僅僅有當eclipse-wtp 插件應用的時候。生成 .settings/org.eclipse.wst.common.component 文件。 |
eclipseWtpFacet |
- |
GenerateEclipseWtpFacet |
僅僅有當eclipse-wtp 插件應用的時候,生成 文件。 |
表 38.3. Eclipse 插件的配置
模型 | 引用名稱 | 描寫敘述 |
EclipseModel |
eclipse |
頂級元素。以DSL友好的方式啓用 Eclipse 插件的配置 |
EclipseProject |
eclipse.project |
贊成配置項目信息 |
EclipseClasspath |
eclipse.classpath |
贊成配置類路徑信息 |
EclipseJdt |
eclipse.jdt |
贊成配置 jdt 信息 (source/target java 兼容性) |
EclipseWtpComponent |
eclipse.wtp.component |
僅當eclipse-wtp 插件被應用時。贊成配置 wtp 組件信息。 |
EclipseWtpFacet |
eclipse.wtp.facet |
僅當eclipse-wtp 插件被應用時,贊成配置 wtp 方面信息。 |
Eclipse 插件贊成您本身定義生成的元數據文件。該插件提供一個 DSL。用於配置把該 project 的Eclipse 視圖作成模型的模型對象。而後把這些模型對象與現有的 Eclipse XML 元數據進行合併。終於生成新的元數據。模型對象提供了低級別的hook,用於處理在合併模型配置先後表示文件內容的域對象。他們還提供了一個很低級別的hook,用於直接處理原始 XML 持久化以前的調整。微調和配置使 Eclipse 插件不進行建模。
已存在的Eclipse 文件的部分,也是生成的目標內容,將會被改動或覆蓋。詳細取決於特定的部分。剩餘的部分則不變。
Eclipse 插件提供了一些對象,對由 Gradle 生成的 Eclipse 文件的段落進行建模。生成的生命週期例如如下:
beforeMerged
的 hook 會隨着一個表示現有文件的域對象運行whenMerged
的 hook 會隨着一個表示持久化的域對象運行withXml
的 hook 會隨着一個表示將被持久化的XML的 raw 運行下表列出了用於每個 Eclipse 模型類型的域對象:
表 38.4. 高級的配置hook
模型 | beforeMerged { arg -> } 參數類型 |
whenMerged { arg -> } 參數類型 |
withXml { arg -> } 參數類型 |
EclipseProject |
Project |
Project |
XmlProvider |
EclipseClasspath |
Classpath |
Classpath |
XmlProvider |
EclipseJdt |
Jdt |
Jdt |
|
EclipseWtpComponent |
WtpComponent |
WtpComponent |
XmlProvider |
EclipseWtpFacet |
WtpFacet |
WtpFacet |
XmlProvider |
一個全然覆蓋會致使現有的所有內容被丟棄,從而丟失在 IDE 中直接作的不論什麼改動。另外, beforeMerged
hook 可以實現僅僅覆蓋現有的某些部分的內容。如下的演示樣例從Classpath
域對象中刪除現有的所有依賴關係:
演示樣例 38.2. 部分覆蓋 Classpath
build.gradle
eclipse.classpath.file { beforeMerged { classpath -> classpath.entries.removeAll { entry -> entry.kind == 'lib' || entry.kind == 'var' } } }
生成的.classpath
文件將僅僅包括 Gradle 生成的依賴項。而沒有其它可能存在於原始文件的依賴項。(對於依賴項,這也是默認行爲。)其它部分的.classpath
文件將會被合併或者保留。對.project
文件裏的natures的處理也是同樣:
WhenMerged
hook 贊成操做全然填充的域對象。
一般,這是本身定義 Eclipse 文件的首選的方法。如下的樣例展現了怎樣導出一個 Eclipse 項目的所有依賴項:
WithXml
hook 贊成在文件寫入到磁盤以前。操縱內存中的 XML 的表示形式。雖然 Groovy 的 XML 支持對其有很是大做用。但這樣的方法比起操縱域對象依舊不慷慨便 。做爲回報,你可以對生成的文件進行全面的控制,包含未由域對象建模的那些部分。