Java 如何以编程方式访问已解决的实现依赖项?
我想访问关于已解决的实现依赖项的元数据,该实现依赖项的版本通过平台bom设置Java 如何以编程方式访问已解决的实现依赖项?,java,gradle,dependencies,dependency-management,Java,Gradle,Dependencies,Dependency Management,我想访问关于已解决的实现依赖项的元数据,该实现依赖项的版本通过平台bom设置 dependencies { implementation platform("internal.spinnaker:clouddriver-bom:${spinnakerRelease}") annotationProcessor platform("internal.spinnaker:clouddriver-bom:${spinnakerRelease}") testAnn
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中的一个条目,以便可以像这样使用它:
我不知道如何在任务或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]
实现
配置中的任何依赖项都将显示在编译类路径上,如下图所示
我或多或少都能让它发挥作用。我不得不做一些恶作剧,让它在应用阶段的插件中工作。