我的共享(Gradle)库未正确读取... Artifactory Maven Pom文件未发布排除项是可疑原因

时间:2016-05-06 11:09:50

标签: maven gradle publish artifactory

我有许多共享库,我使用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),但无法使脚本生效。

是否有人对如何排除这些排除项有任何其他建议?或者我是在错误的轨道上,可能是完全不同的东西吗?

我已经玩了好几天了,所以任何建议都会非常感谢!

全部谢谢!

1 个答案:

答案 0 :(得分:1)

我现在已经进一步解决了这个问题,发现问题不在我认为的地方 - 所以我有一半的答案!

缺乏排除结果证明是红鲱鱼。我没有提到的另一部分设置是我将常用的gradle配置解放到一个单独的模块中。这有一些依赖关系,每个模块都有共同点。上面问题中提到的库模块有一些额外的依赖关系,并且没有在生成的pom中捕获这些依赖关系。

这似乎是Artifactory插件的一个突出问题,我追查了here