【发布时间】:2020-02-12 05:35:16
【问题描述】:
我有一个 java 项目,它有几个依赖项,例如:
dependencies {
compile("com.whatever.jar:jar-1:1.2.3")
compile("com.whatever.jar:jar-2:4.5.6")
compile("com.whatever.jar:jar-3:7.8.9")
}
我将它打包为一个 jar 库并将它与描述这些依赖关系的 POM 文件一起发布到存储库:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.my.project</groupId>
<artifactId>my-library</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>com.whatever.jar</groupId>
<artifactId>jar-1</artifactId>
<version>1.2.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.whatever.jar</groupId>
<artifactId>jar-2</artifactId>
<version>4.5.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.whatever.jar</groupId>
<artifactId>jar-3</artifactId>
<version>7.8.9</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
我还有另一个项目,它在编译时依赖于这个先前构建的 jar:
dependencies {
compileOnly("com.my.project:my-library:1.0.0")
}
我想创建一个任务来构建第二个项目并创建一个包含com.my.project:my-library:1.0.0 jar 及其传递依赖项(jar-1、jar-2 和 jar-3)的 zip 文件。
task createZip << {
into('lib') {
// here I would like to do something like (it's a horrible pseudo-code):
from configurations.(com.my.project:my-library:1.0.0).jar.transitiveDependencies.files
}
}
我如何做到这一点?
编辑:我还想以编程方式访问my-library 的传递依赖项列表(准确地说,是那些,而不是项目中的任何其他依赖项),以便使用它们构建Loader-Path 清单属性。
【问题讨论】:
标签: java gradle jar dependencies transitive-dependency