Gradle技巧–显示buildscript依赖性
在Gradle中如何顯示和分析buildscript依賴項(例如插件)的簡單方法
介紹
這是我的Gradle技巧迷你系列的第三部分,該系列與可視化和依賴性分析有關。 在第一篇文章中,我介紹了如何顯示多項目構建中所有子項目的依賴關系的方法。 在第二篇文章中,我展示了一種可用于跟蹤項目中未預期的傳遞性依賴關系的技術。 這次較少使用的東西,但在特定情況下至關重要-構建腳本依賴項。
實際用例
Buildscript依賴項包含我們項目中使用的插件及其依賴項。 除非您是Gradle插件開發人員,否則這似乎沒什么意思,但這并不是完全正確的。 曾經,作為一名顧問,我正在一個大型項目中研究有關NoSuchMethodException問題,該項目具有在Gradle之上構建的自定義構建框架。 僅當一個無辜的,非常流行的開源插件已添加到該項目中時,才發生該問題。 同一插件在該公司的許多其他項目中都可以正常工作。 最后,我能夠弄清楚buildSrc自定義腳本中使用的依賴項之一,從插件覆蓋了舊版本中的相同依賴項。 結果,插件在運行時失敗,并提到了NoSuchMethodException 。 為了實現這一點,我不得不使用自定義腳本,因為在使用./gradlew dependencies或./gradlew dependencyInsight時,完全忽略了buildscript / classpath依賴項。
解
寫這篇文章的想法出現在2015年初。我想展示我的Gradle小型任務,該任務使用一些內部Gradle機制檢索buildscript依賴項并將其顯示在控制臺上。 該職位被推遲,差不多一年后,我對Gradle 2.10的發行說明感到驚訝。 添加了新的buildEnvironment任務。
$ ./gradlew buildEnvironment :buildEnvironment------------------------------------------------------------ Root project ------------------------------------------------------------classpath +--- com.bmuschko:gradle-nexus-plugin:2.3 \--- io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.5.3\--- org.codehaus.groovy.modules.http-builder:http-builder:0.7.1+--- org.apache.httpcomponents:httpclient:4.2.1| +--- org.apache.httpcomponents:httpcore:4.2.1| +--- commons-logging:commons-logging:1.1.1| \--- commons-codec:commons-codec:1.6+--- net.sf.json-lib:json-lib:2.3| +--- commons-beanutils:commons-beanutils:1.8.0| | \--- commons-logging:commons-logging:1.1.1| +--- commons-collections:commons-collections:3.2.1| +--- commons-lang:commons-lang:2.4| +--- commons-logging:commons-logging:1.1.1| \--- net.sf.ezmorph:ezmorph:1.0.6| \--- commons-lang:commons-lang:2.3 -> 2.4+--- net.sourceforge.nekohtml:nekohtml:1.9.16\--- xml-resolver:xml-resolver:1.2(*) - dependencies omitted (listed previously)BUILD SUCCESSFULTotal time: 1.38 secs兩個插件和傳遞的依賴關系到包gradle這個-關系分期-插件由于HTTP建設者(也許這將是很好的,取而代之的是Jodd ?)。
摘要
能夠區分標準項目依賴關系和buildscript依賴關系是值得的。 新的buildEnvironment任務有助于處理后者。 當奇怪的運行時錯誤開始出現時,這又變得至關重要。
經過Gradle 2.10測試。
翻譯自: https://www.javacodegeeks.com/2016/06/gradle-tricks-display-buildscript-dependencies.html
總結
以上是生活随笔為你收集整理的Gradle技巧–显示buildscript依赖性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓无限重启怎么办(安卓无限重启)
- 下一篇: 重置线程中断状态_记住要重置线程上下文类