Maven:忽略特定工件而不会使构建失败

时间:2019-08-27 11:41:37

标签: java maven artifactory

我正在尝试在本地构建Apache CXF。它在Maven代理(例如JFrog Artifactory)之后不起作用,因为CXF的可传递依赖项包含具有无效pom.xml文件的依赖项:

[ERROR] Failed to execute goal on project cxf-rt-transports-jms: Could not resolve dependencies for project org.apache.cxf:cxf-rt-transports-jms:bundle:3.4.0-SNAPSHOT: Failed to collect dependencies at org.apache.activemq:activemq-pool:jar:5.15.9 -> org.apache.activemq:activemq-jms-pool:jar:5.15.9 -> org.apache.geronimo.specs:geronimo-jta_1.0.1B_spec:jar:1.0.1: Failed to read artifact descriptor for org.apache.geronimo.specs:geronimo-jta_1.0.1B_spec:jar:1.0.1: Could not transfer artifact org.apache.geronimo.specs:specs:pom:1.1 from/to nexus-central (https://myrepo.local/maven-central/): Failed to transfer file https://myrepo.local/maven-central/org/apache/geronimo/specs/specs/1.1/specs-1.1.pom with status code 409 -> [Help 1]

如果无法解析XML文件,Artifactory将提供409。在这种情况下,伪像是apache.geronimo.specs:specs:pom:1.1。如果查看一下XML文件,就会发现它确实是无效的:https://repo1.maven.org/maven2/org/apache/geronimo/specs/specs/1.1/specs-1.1.pom

在第89行(以</developers>结尾)之后,还有一个额外的`。

我在apache中打开了一个问题来修复其构建:https://issues.apache.org/jira/browse/CXF-8101

同时,我想与CXF合作创建一个补丁。

我尝试过的事情:

  • 手动安装依赖项=>失败,因为mvn仍在寻找更新
  • 没有代理=>对我来说不是一个选择:(
  • parent/pom.xml =>本地添加一些排除项没有帮助,我将永远无法捕获它们(传递依赖项…)。
  • 将有问题的工件的版本强制为1.2。也没有帮助,因为某些项目仍将依赖特定版本。

那是什么,我有什么选择?

预先感谢, 本

1 个答案:

答案 0 :(得分:0)

您可以尝试:

  1. org/apache/geronimo/specs/specs/1.1/specs-1.1.pom下载到本地.m2路径并修复错误。[You need to be sure all dependencies are available in your local repository]
  2. 尝试使用maven命令进行构建:-o(离线)
  3. 如果-o不能解决问题,请尝试使用-nsu,--no-snapshot-updates(禁止快照更新)

希望它对您有帮助。