Gradle善良:获得更多的依赖性见解
在我們的大多數項目中,我們都依賴于其他代碼,例如庫或其他項目。 Gradle有一個不錯的DSL來定義依賴關系。 依賴性在依賴性配置中分組。 這些配置可以自己創建,也可以通過插件添加。 一旦定義了依賴項,我們就可以通過dependencies任務很好地了解項目中的所有dependencies項。 我們可以添加可選參數--configuration以僅查看給定配置的依賴性。 但是我們甚至可以檢查使用它的特定依賴項,任何傳遞性依賴項以及如何解析版本。
在以下示例構建中,我們定義了對Spring Boot和SLF4J API的編譯依賴性。 SLF4J API還是Spring Boot依賴項的可傳遞依賴項,因此我們可以看到dependencyInsight任務如何顯示版本沖突。
apply plugin: 'java'// Set Bintray JCenter as repository. repositories.jcenter()dependencies {// Set dependency for Spring Bootcompile "org.springframework.boot:spring-boot-starter-web:1.1.5.RELEASE"// Set dependency for SLF4J with conflicting version.compile 'org.slf4j:slf4j-api:1.7.1' }現在,讓我們在編譯配置中為依賴項SLF4J API運行dependencyInsight任務:
$ gradle -q dependencyInsight --configuration compile --dependency slf4j-api org.slf4j:slf4j-api:1.7.7 (conflict resolution) +--- org.slf4j:jcl-over-slf4j:1.7.7 | \--- org.springframework.boot:spring-boot-starter-logging:1.1.5.RELEASE | \--- org.springframework.boot:spring-boot-starter:1.1.5.RELEASE | \--- org.springframework.boot:spring-boot-starter-web:1.1.5.RELEASE | \--- compile +--- org.slf4j:jul-to-slf4j:1.7.7 | \--- org.springframework.boot:spring-boot-starter-logging:1.1.5.RELEASE (*) \--- org.slf4j:log4j-over-slf4j:1.7.7\--- org.springframework.boot:spring-boot-starter-logging:1.1.5.RELEASE (*)org.slf4j:slf4j-api:1.7.1 -> 1.7.7 \--- compileorg.slf4j:slf4j-api:1.7.6 -> 1.7.7 \--- ch.qos.logback:logback-classic:1.1.2\--- org.springframework.boot:spring-boot-starter-logging:1.1.5.RELEASE\--- org.springframework.boot:spring-boot-starter:1.1.5.RELEASE\--- org.springframework.boot:spring-boot-starter-web:1.1.5.RELEASE\--- compile(*) - dependencies omitted (listed previously)在輸出中,我們可以看到slf4j-api被引用了3次,一次是jcl-over-slf4j,jul-to-slf4j和log4j-over-slf4j的傳遞依賴,一次是logback-classic的傳遞依賴,一次是直接依賴于編譯配置。 我們還看到該版本在必要時會升至1.7.7,因為jcl-over-slf4j的傳遞依賴項定義了最新版本。
我們用于--dependency選項的值用于在依賴項的組,名稱或版本屬性中進行部分匹配。 例如,要查看對日志記錄的所有依賴關系的了解,我們可以調用$ gradle dependencyInsight --dependency logging 。
我們還可以獲得帶有所有依賴項概述HTML報告頁面。 要獲得依賴關系見解,我們必須在HTML頁面上單擊所需的依賴關系,并且獲得與命令行類似的輸出。 首先,我們必須將project-report插件添加到我們的項目中。 接下來,我們調用dependencyReport任務。 任務完成后,我們可以在Web瀏覽器中打開build/reports/project/dependencies/index.html 。 當我們導航到編譯配置并單擊slf4j-api依賴項時,將得到以下輸出:
- 用Gradle 2.0編寫。
翻譯自: https://www.javacodegeeks.com/2014/08/gradle-goodness-getting-more-dependency-insight.html
總結
以上是生活随笔為你收集整理的Gradle善良:获得更多的依赖性见解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Java 8 Lambda清理JUn
- 下一篇: 避免许多if块进行验证检查