一个mvn release:perform
由于未创建 javadoc 而失败。所以我尝试运行
mvn javadoc:javadoc
我和我发现它失败是因为源代码中的 javadoc 注释没有所有参数和返回值的定义。错误的格式如下:
Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.0.1:jar (attach-javadocs) on project my-project: MavenReportException: Error while generating Javadoc:
Exit code: 1 - /my/file.java:36: warning: no description for @return
然而,这曾经有效。那么发生了什么变化?
我检查了maven-javadoc-plugin文档,它现在(在v3.0中)说参数不是additionalParam或additionalparam,而是additionalOptions和additionalJOptions。请参阅maven-javadoc-plugin documentation .
当我搜索参数additionalParam时,它没有出现。我很困惑这怎么行得通。寻找答案,有些人说使用我正在使用的东西,其他人说使用additionalJOption。请参阅Maven is not working in Java 8 when Javadoc tags are incomplete .
如何修复它?
关于导致问题的原因以及如何解决它有什么想法吗?
我尝试过的
幸运的是,我找到了一个解决方法,即从命令行禁用 Javadoc linting:
mvn release:perform -Darugments="-Dmaven.javadoc.skip=true"
工藤致 code.i-harness.com posting这给了我这个解决办法。
所以我已经解决了最初的问题,但想要/需要清理 poms 以删除无用的参数,或将它们更改为新的/正确的语法(尚未测试)。
有用的搜索
搜索 SO 会得到这些有用的结果:
How can I disable the Maven Javadoc plugin from the command line? - 给了我搜索 maven.javadoc.skip 的想法,这帮助我找到了我的工作。
Maven is not working in Java 8 when Javadoc tags are incomplete这说我应该使用
additionalJOption
范围。同样的问题有一个答案,说使用我正在使用的<additionalparam>-Xdoclint:none</additionalparam>
最佳答案
您应该使用doclint选项:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<doclint>none</doclint>
</configuration>
</plugin>
这将跳过所有检查。一般来说,我建议运行除缺少 @return 和 @param 之外的所有检查。因此,您可以使用:
,而不是none
<doclint>all,-missing</doclint>
可以打开或关闭单独的检查组(如上面的-missing
)。有关组的详细说明可以在 javadoc documentation 中找到。 (在页面底部)。
关于maven-javadoc-plugin 不接受 <additionalparam>-Xdoclint :none</additionalparam>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52547306/