如何在创建网站时避免多次调用javadoc?

11

我想要部署一个伴有javadoc和Maven站点的artifact。我使用

clean javadoc:jar site deploy site:deploy

sitesite:deploy的区别只是为了避免在deploy失败时部署站点)。

现在javadoc会被创建两次 - 一次在javadoc:jar中,一次在site中。是否可能只创建一次并将其用于Nexus中的javadoc-jar和Maven站点?


你尝试在pom中添加<reporting>部分,作为站点生成的一部分来生成javadocs了吗? - Kayvan Tehrani
1
Javadoc在站点构建中生成,但不会打包到jar文件中(除非我还调用javadoc:jar)。 - J Fabian Meier
2个回答

5

我相信该插件缺少一个检查程序,以确定输出是否已作为Maven会话的一部分生成。验证输出是否是在 Maven 启动 之后 生成将是一个不错的改进。(我们还可以添加一个强制参数来强制创建输出)。


抱歉,实际上我不明白你的建议(或者我应该尝试什么)?因为我们从一个“clean”开始,所以所有东西都是在Maven启动后创建的。 - J Fabian Meier
这不是建议,我是在说如果你调用maven-javadoc-plugin的2个目标,由于缺少优化,它将调用两次javadoc工具。 - Robert Scholte

1
可能的解决方案是创建两个不同的脚本进行构建/部署,并逐一运行它们:
  1. 首先进行完整构建,使用-Dmaven.javadoc.skip=true参数,这可以避免创建javadoc。
  2. 然后只需运行mvn javadoc:javadoc命令即可获取实际的javadoc。

此外,也许下面的链接能帮到你:

  1. https://maven.apache.org/plugins/maven-javadoc-plugin/examples/selective-javadocs-report.html
  2. https://maven.apache.org/plugins/maven-javadoc-plugin/examples/test-javadocs.html

因此,您可以指定javadoc插件的执行阶段并指定reportSet。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接