我有一个项目A,我使用gradle构建并部署到artifactory。 A取决于lib.jar文件。在A / build.gradle中,我有compile files("lib.jar")
。
当我做gradle artifactoryPublish时,artifacotry中没有lib.jar。有没有办法自动包含lib.jar和A.jar?
我有一个项目B依赖于A并且还引用了lib.jar。在B / build.gradle中,我使用compile(group:'a', name: 'A', version: '1')
。
我也需要拉lib.jar。显而易见的解决方案是手动将lib.jar添加到artifacotry中。并将它作为A引用,但有更好的解决方案吗?
感谢。
答案 0 :(得分:0)
您必须将其声明为包含它的工件。
def myLib = file('lib.jar')
artifacts {
archives myLib
}
另一种解决方案是将其作为单独的jar示例foo:Bar:1
上载到存储库,然后使用依赖项构建a:A:1
并将a:A:1
上载到存储库。
如果您使用a:A:1
作为依赖关系构建b:B:1
,a:A:1
的pom将自动引用您的lib.jar foo:Bar:1
,它将被删除。
答案 1 :(得分:0)
作为临时解决方案,我将myLib.jar合并到A.jar中:
task addJar(type: Copy) {
FileTree f = zipTree('lib.jar')
from f
into 'build/classes/main'
}
jar.dependsOn(addJar)