摇篮配置
在這篇文章中,我們將介紹有關Gradle配置的綜合文章。
1.技術
Gradle是用于自動任務管理的開源構建工具。 它基于Apache Ant,Apache Maven的概念。 Gradle是使用Groovy語言開發的。 Gradle是使用基于Groovy的領域特定語言(DSL)開發的。 Gradle構建以Apache Maven的形式包含Groovy語言的任務,而Apache Ant構建文件為XML格式。
Gradle使用有向無環圖(DAG)確定執行任務的順序。 Gradle是為多項目構建而設計的,這意味著一個項目將有許多子項目,并且可以增長到很多子項目。 Gradle的獨特功能是通過智能確定構建樹的哪些部分被修改,哪些未被修改,來支持增量構建。 如果樹中的某些部分未修改,則將通過顯示最新狀態來跳過它,而其他部分將被重新執行,這將減少項目的構建時間。
2. Java項目結構
與Maven目錄結構類似,Gradle的項目結構還將包含src / main / java和src / main / resources用于Java類和類路徑資源,src / test / java和src / test / resources將包含測試類和相應地測試資源。
3.搖籃配置
Gradle是指定依賴項的基本概念。 使用配置,我們可以指定依賴關系,這些依賴關系可以在本地緩存或Maven Central存儲庫或在Gradle構建文件中配置的任何存儲庫中。
通過將Maven構建文件(pom.xml)和ant構建文件(build.xml)導入Gradle構建文件(build.gradle),還支持Gradle。
默認情況下,Gradle支持以下配置:
實作
實施配置應視為默認配置。 我們使用它來聲明我們不想暴露給使用者的編譯時的依賴項。 引入此配置是為了替換已棄用的編譯配置,以避免污染使用者的編譯時,而實際上我們不想暴露這些依賴。
a)Gradle將依賴項添加到編譯類路徑中,并將依賴項打包到生成輸出中。 但是,當您的模塊配置實現依賴項時,它會讓Gradle知道您不希望該模塊在編譯時泄漏對其他模塊的依賴項。 即,該依賴關系僅在運行時可用于其他模塊。
b)使用此依賴項配置而不是API或編譯(不建議使用)可以顯著縮短構建時間,因為它減少了構建系統需要重新編譯的模塊數量。 例如,如果實現依賴項更改其API,則Gradle僅重新編譯該依賴關系和直接依賴于該依賴關系的模塊。 大多數應用程序和測試模塊應使用此配置。
API
我們使用API??配置確實聲明了屬于我們API的依賴項,即,對于我們明確希望公開給我們的使用者的依賴項。 這是唯一將依賴項暴露給使用者的編譯時的標準配置。
a)Gradle將依賴項添加到編譯類路徑并生成輸出。 當模塊包含API依賴項時,它會讓Gradle知道該模塊希望將該依賴項可傳遞地導出到其他模塊,以便它們在運行時和編譯時都可用。
b)此配置的行為就像編譯一樣,但是您應謹慎使用它,并且僅應將需要的依賴項可傳遞地導出到其他上游使用者。 這是因為,如果API依賴關系更改了其外部API,則Gradle會在編譯時重新編譯所有可以訪問該依賴關系的模塊。 因此,擁有大量的API依賴關系會顯著增加構建時間。 除非您希望將依賴項的API公開給單獨的模塊,否則庫模塊應該使用實現依賴項。
僅編譯
使用compileOnly配置,可以聲明僅在編譯時才可用的依賴項,而在運行時不可用。 例如Project,Lombok是庫,它在編譯時修改字節碼,并通過使用注釋將更多方法添加到類中。 一旦生成了更新的字節碼,就不需要在類路徑中顯示字節碼,因為這些類型的庫將使用此配置。
僅運行時
Gradle僅將依賴項添加到構建輸出中,以在運行時使用。 也就是說,它不會添加到編譯類路徑中。 例如,數據庫驅動程序,我們曾在配置中指定驅動程序的類名,但并不需要在編譯時顯示,它僅在運行時有用。
注釋處理器
要在作為注釋處理器的庫上添加依賴項,必須使用注釋處理器配置將其添加到注釋處理器類路徑中。 這是因為使用此配置可??以通過將編譯類路徑與注釋處理器類路徑分開來提高構建性能。 如果Gradle在編譯類路徑上找到注釋處理器,則會停用編譯回避,這會對構建時間產生負面影響(5.0或更高版本,在編譯類路徑上找到忽略注釋處理器)。
測試實施
與實現配置類似,測試實現配置用于指定在測試的編譯和運行期間可用的依賴項。 例如,僅在編譯或執行測試時才需要Junit和Mocking庫。
testCompileOnly
與編譯類似,僅依賴項僅在測試類編譯時可用,而在測試運行時不可用。
testRuntimeOnly
類似于runtimeOnly,這些依賴項在執行測試時可用,但在測試編譯時不可用。
以上都是默認情況下Gradle提供的配置,我們可以使用自定義配置,在自定義任務中指定這些自定義配置。 Gradle還支持配置中的繼承。 我們可以使用來自配置屬性的擴展來指定基本配置。
configurations {testCompileOnly.extendsFrom compileOnly }所有完整的配置依賴項都將被復制到testCompileOnly Configuration,這將刪除Gradle構建文件中的重復規范。
4. Gradle配置–結論
在當前博客中,我們了解了Gradle構建工具,并增加了Gradle相對于Maven,Ant構建工具的優勢。 我們詳細研究了Gradle配置,在其中如何指定每個配置級別的依賴項。
在本文中,我將描述您需要工程師利用Gradle注意Java Web應用程序的所有內容 。 我已經完成了無數可以想到的Gradle巨大的Java冒險。 它提供快速的監督和運輸。 利用Gradle輕松安排您的事業。
翻譯自: https://www.javacodegeeks.com/gradle-configuration.html
總結
- 上一篇: 项目织机
- 下一篇: eclipse插件开发_开发Eclips