Gradle项目仅依赖于另一个项目中的一个jar

时间:2015-07-16 06:10:32

标签: java jar gradle build

我在Gradle中有一个多项目构建,我的问题是我的一个项目依赖于在构建另一个项目期间生成的一个jar。更清楚: 项目A生产:a.jar,b.jar,c.jar,d.jar 项目B取决于:仅限b.jar

有没有办法不依赖于整个项目A而只依赖于b.jar?

有人解决了类似的问题吗?

1 个答案:

答案 0 :(得分:0)

这可以通过配置实现。我们假设您将 b.jar 添加到项目A中的自定义配置中:

configurations {
    bArchives
}

artifacts {
    bArchives bJarTask
}

其中 bJarTask 是创建 b.jar 的任务。现在在项目B中,您可以声明对该自定义配置的依赖:

dependencies {
    compile project(path: ":a", configuration: "bArchives")
}

不幸的是,有一个问题。这将在运行时类路径中包含 b.jar ,而不是 b.jar 的任何传递依赖项。如果您希望添加这些传递依赖项,您应该能够让自定义工件配置扩展项目A中的相应依赖项配置:

configurations {
    bArchives.extendsFrom "bRuntime"
}

我还没有测试过最后一点,所以我不能100%确定它会起作用。 Java插件的工作方式不同,它将 jar 任务中的工件直接添加到运行时配置。