有没有办法从build.gradle中获取依赖项的版本?

问题描述

这是我的问题,我要根据项目所在的区域拉最新版本。

if (System.getenv()["namespace"].contains("dev")) {
       compile("com.foo.bar.dev:library:latest.release")
   } else if (System.getenv()["namespace"].contains("test")) {
       compile("com.foo.bar.test:library:latest.release")
   } else {
       compile("com.foo.bar.other:library:latest.release")
   }

以后是否有一种方法可以解决此依赖关系,特别是想获取jar版本?

def zipFile = file("build/libs/foobar/library-${projectVersion}.jar")

感谢您的协助,我发现最好的是命令行中的dependencyInsight,但是我特别需要在任务中自动执行此操作。

解决方法

您似乎只想路径已解决的JAR。如果我理解正确,则可以解决配置并过滤所需的依赖项。例如,使用commons-lang3

dependencies {
    implementation("org.apache.commons:commons-lang3:3.11")
}

val commonsLang3Jar = configurations.compileClasspath.get().filter { it.name.startsWith("commons-lang3") }.singleFile

println(commonsLang3Jar.absolutePath)

这将导致打印以下行:

~/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.11/68e9a6adf7cf8eb7e9d31bbc554c7c75eeaac568/commons-lang3-3.11.jar

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...