问题在于我有三个兄弟项目。这里只有两个很重要,我们称之为共享和客户端。客户端依赖于共享,因为我已经完成了所有本地操作,我在build.gradle中为客户端项目定义了依赖项,例如编译项目(':shared')。现在我想借助maven-publish插件发布客户端。当我这样做时,依赖于客户端的每个项目都会失败,因为它无法在任何地方找到共享项目。
现在完全有意义的是它并没有在构建客户端的任何地方发布。我现在希望客户端项目的工件包含共享项目的所有类。此外,我希望客户端工件不再说它取决于共享项目,但它现在应该依赖于共享所依赖的所有内容。
我已经完成了大量的研究,我发现this question and answer显示了如何在生成的工件中包含特定的依赖关系。问题在于包括共享项目到jar的所有依赖项以及共享项目的文件。
我的问题是:
shared
进入client
建立的jar?shared
但不包括它的依赖关系
maven-publish插件生成的工件?答案 0 :(得分:0)
我找到问题2的答案:
在build.gradle中,你需要添加:
configurations {
localCompile.transitive = false
compile.extendsFrom(localCompile)
}
jar {
from {
configurations.localCompile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
然后简单地定义所有本地依赖项,如localCompile project(":kuroji-websocket-shared")
。