【发布时间】:2016-06-03 20:34:09
【问题描述】:
我有一个这样的分层 gradle 2.4 项目:
Root
|- subProject1
|- subProject2
|- subProject3
对于每个子项目,我想发布一个 .jar 文件和一个 .pom 文件并将它们存储在一个 maven 存储库中。所有常规的compile('com.example:awesome-lib') 命令都正确导出到 *.pom 文件中。
让我们假设subProject2 中有一个compile project(':subProject1') 依赖项。此依赖项不会包含在生成的 *.pom 文件中。
我的 gradle 发布结构如下所示:
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
groupId project.group
artifactId jar.baseName
version project.version
}
}
}
...我做错了吗?为什么我的 compile project 依赖项不会导出到 *.pom 文件中?有什么解决方法吗?为了澄清起见,我期望上面示例中的结果是 subProject2.pom 声明了对 subProject1.jar 的依赖。
【问题讨论】:
-
我找到了解决方法。使用此处描述的 pom API:docs.gradle.org/current/userguide/publishing_maven.html ...我通过 Groovy 中的脚本添加了依赖项 (
pom.withXml)。不是很漂亮,但它完成了工作。缺点是我必须重新声明违反 DRY 原则的项目依赖关系。
标签: java gradle pom.xml publishing parent-pom