[英]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 插件中獲取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.