maven-javadoc-plugin breaks mvn release:perform

2022-09-01 05:38:41

我正在尝试执行过去多次发布到Nexus服务器的三个项目。突然的今天,没有明显的原因,所有版本都未能执行目标 。mvn release:performorg.apache.maven.plugins:maven-javadoc-plugin:2.10:jar (attach-javadocs)

打开全栈跟踪和调试日志记录( 和 )后,我看到几百行关于丢失包的错误:-e-X

...    
package org.apache.http does not exist
package org.slf4j does not exist
package org.joda.time does not exist
...

但是,所有这些软件包都在我的本地存储库和Nexus服务器中。此外,我没有从中得到任何这些错误,并且所有项目(Java Web应用程序)实际上都从Intellij启动而没有问题 - 所以很明显我实际上并没有错过数百个包。mvn clean install

当并且没有任何问题时,什么可以阻止找到这些软件包?mvn release:performmvn clean installmvn release:prepare


答案 1

解决此问题的另一种方法是添加以下属性:

...
<properties>
<maven.javadoc.failOnError>false</maven.javadoc.failOnError>
...
</properties>

在你的绒球里.xml


答案 2

关于 更新 到 似乎存在一系列问题。请参阅 https://issues.apache.org/jira/browse/MJAVADOC-408maven-javadoc-plugin

如果没有另行指定,我可以看到使用最新版本的“内置”插件的一些好处(与给定Maven版本的“固定版本”相比),但这意味着插件维护者有义务在插件发布时对每个版本的Maven进行回归测试。也许错过了一些东西。mvn

一种解决方法是在组织的超级POM中显式指定以前的版本,或者,如果无法快速更改超级POM,则指定项目POM:maven-javadoc-plugin

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>2.9.1</version>
    </plugin>
  </plugins>
</pluginManagement>

我们的CI钻机(Jenkins)今天遇到了同样的问题。希望一个新的会随着它的依赖关系树的更新而得到推动(如果这确实是问题所在)。FWIW,我们在3.0.5上(,由于各种原因而悲伤)。maven-javadoc-plugin

更新 2014-09-24

这整个 hubub 似乎起源于维护者对 MJAVADOC-398一个尚未解决的问题的反应。我不知道为什么有人会为未解决的下游项目缺陷发布一个突破性的解决方法。maven-javadoc-pluginjava-1.8.0-openjdk

更新 2014-10-02

MJAVADOC-406已得到解决,Maven Central中有一个版本可用,并且可能有许多存储库在您附近。2.10.1maven-javadoc-plugin

使用未固定的javadoc插件版本的构建现在应该恢复正常。

故事的寓意

Maven-folk,你已经被警告了。锁定插件依赖项,因为它们可能会变得流氓。

附言,MJAVADOC-408已作为MJAVADOC-407的副本关闭。


推荐