如何在Gradle多项目构建中管理依赖项
從很早以前我就一直喜歡Gradle構建工具。 它的潛力甚至在1.0版本之前就已經很明顯了,那時變化經常被打破。 如今,升級很少會引起意外。 該工具已經成熟并且運行良好。
Gradle包括一個功能強大的依賴項管理系統,該系統可以與Maven和Ivy存儲庫以及本地文件系統依賴項一起使用。
在使用Gradle的過程中,我開始依賴一種模式來管理要共享的多項目構建中的依賴項。 此模式包含兩個關鍵實踐:
兩種實踐都是將軟件開發最佳實踐(例如DRY)應用于組成Gradle構建的代碼的示例。 讓我們更詳細地了解它們。
集中依賴聲明
在根項目的build.gradle文件中,為整個項目中使用的每個依賴項聲明一個新配置 。 在使用依賴項的每個子項目中,聲明compile (或testCompile等)配置擴展了依賴項的配置:
根項目build.gradle
子項目build.gradle
configurations {compile.extendsFrom commonsIo }通過將所有依賴項聲明放在一個位置,我們知道在哪里查找,并防止多個子項目聲明具有不同版本的相同依賴項。
此外,各分項工程現在更聲明,指明他們只依賴于什么邏輯組件,而不是一個零件怎樣從單個的jar文件建立起來的所有細節。 當存在一對一的對應關系時(如在commons IO示例中),這沒什么大不了的,但是當使用由多個jar組成的組件(例如Spring框架或Jetty)時,差異就明顯了。
集中依賴版本聲明
下一步是將根項目的build.gradle文件中的所有版本號替換為根項目的
gradle.properties :
build.gradle
dependencies {commonsIo "commons-io:commons-io:$commonsIoVersion" }gradle.properties
commonsIoVersion=2.5通過這種做法,您可以將版本號重新用于相關的依賴項。 例如,如果您使用的是Spring框架,則可能要聲明對具有相同版本號的spring-mvc和spring-jdbc依賴關系。
這種方法還有一個優點。 升級依賴項意味著更新gradle.properties ,而添加新依賴項則意味著更新build.gradle 。 這使得從提交提要中輕松判斷可能進行了哪些類型的更改,從而確定是否需要進行更仔細的檢查。
您可以更進一步,將configurations和dependencies塊放在單獨的文件中,例如, dependencies.gradle 。
超越…
將所有依賴項聲明在一個位置是更高級的供應鏈管理實踐的墊腳石。
集中聲明的配置很好地概述了產品中使用的所有組件,即所謂的物料清單(BOM)。 您可以使用上述技術,也可以使用Gradle BOM插件 。
通過BOM,使用OWASP DependencyCheck之類的工具可以更輕松地檢查所使用的依賴項中是否公開披露了漏洞。 在EMC,針對我們產品報告的大約80%的漏洞是由第三方組件的問題引起的,因此有必要對依賴項進行安全監視。
可靠的BOM還可簡化查看許可證及其合規性要求的過程。 如果您買不起BlackDuck Protex之類的工具,您可以用少量的努力自己編寫不太高級的東西。
翻譯自: https://www.javacodegeeks.com/2016/05/manage-dependencies-gradle-multi-project-build.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的如何在Gradle多项目构建中管理依赖项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 日租宝什么意思 日租宝的解释
- 下一篇: apache hive_通过6个简单的步