簡體   English   中英

您如何以編程方式訪問已解決的實現依賴項?

[英]How do you programmatically access resolved implementation dependencies?

我想訪問有關已通過平台 bom 設置其版本的已解決實現依賴項的元數據

  dependencies {
      implementation platform("internal.spinnaker:clouddriver-bom:${spinnakerRelease}")
      annotationProcessor platform("internal.spinnaker:clouddriver-bom:${spinnakerRelease}")
      testAnnotationProcessor platform("internal.spinnaker:clouddriver-bom:${spinnakerRelease}")

      implementation "com.netflix.spinnaker.clouddriver:clouddriver-web"
      implementation "com.netflix.spinnaker.clouddriver:clouddriver-core"
      implementation "com.netflix.spinnaker.clouddriver:clouddriver-security"
  }

我希望能夠以編程方式訪問已解析的 clouddriver-web 版本。 我可以在網上找到的所有解決方案都繼續引用這樣的代碼。

configurations.compile.resolvedConfiguration.firstLevelModuleDependencies

您無法使用實現配置來執行此操作,因為它會引發無法解決的錯誤。

最終目標是讓已解決的依賴項成為 META-INF/build-info.properties 中的一個條目,以便可以像這樣使用它: https://www.vojtechruzicka.com/spring-boot-version/

我不知道如何在任務或 gradle 文件中獲取版本。

任何幫助將不勝感激,干杯!

使用 Gradle 6.0,以下build.gradle

plugins {
  id 'java'
}

repositories {
  jcenter()
}

dependencies {
  implementation 'com.google.guava:guava:29.0-jre'
}

task log {
  doLast {
    println(configurations.compileClasspath.resolvedConfiguration.firstLevelModuleDependencies)
  }
}

運行時:

./gradlew :log

印刷:

> Task :log
[com.google.guava:guava:29.0-jre;compile]

implementation配置中的任何依賴項都將顯示在編譯類路徑中,如下圖所示,我從Java 插件中獲取。

https://docs.gradle.org/current/userguide/img/java-main-configurations.png

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM