我有许多共享库,我使用Gradle(使用Jenkins)发布到Artifactory并从其他项目引用。当依赖项目从Artifactory中下拉库时,它会失败与该库相关的测试(无法找到类等)。如果我在我的Maven存储库中本地安装库,一切正常,所以我只能假设Artifactory包和Gradle'安装'之间存在重要区别。任务包。
我比较了两个软件包,pom
似乎导致了问题(Artifactory pom
文件导致我的Maven资源库构建失败,当我手动粘贴它时)。我可以看到它们之间的关键区别是Artifactory pom
不包含依赖项排除:
本地Maven repo pom使用'安装' Gradle任务:
<groupId>blah</groupId>
<artifactId>some-library</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId> ......etc
Artifactory发表了pom:
<groupId>blah</groupId>
<artifactId>some-library</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.next.dependency</groupId>
我尝试添加脚本来引入这些排除项(如建议的here),但无法使脚本生效。
是否有人对如何排除这些排除项有任何其他建议?或者我是在错误的轨道上,可能是完全不同的东西吗?
我已经玩了好几天了,所以任何建议都会非常感谢!
全部谢谢!
答案 0 :(得分:1)
我现在已经进一步解决了这个问题,发现问题不在我认为的地方 - 所以我有一半的答案!
缺乏排除结果证明是红鲱鱼。我没有提到的另一部分设置是我将常用的gradle配置解放到一个单独的模块中。这有一些依赖关系,每个模块都有共同点。上面问题中提到的库模块有一些额外的依赖关系,并且没有在生成的pom中捕获这些依赖关系。
这似乎是Artifactory插件的一个突出问题,我追查了here