通过gradle将依赖项jar与主要工件一起发布到artifactory

时间:2014-01-21 17:03:50

标签: dependencies gradle artifactory

我有一个项目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引用,但有更好的解决方案吗?

感谢。

2 个答案:

答案 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:1a: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)