多年来,我一直在使用Maven Javadoc插件 javadoc:jar目标,将许多Java构件发布到Nexus (Maven Central)。目前,我使用的是Java17和org.apache.maven.plugins:maven-javadoc-plugin:3.4.1的Maven 3.8.6。
今天,我正在阅读插件文档(在文档中强调):
javadoc:jar:“使用标准的Javadoc工具将非聚合器项目中的main Java code的Javadoc文档绑定到jar中。javadoc:aggregate-jar:“使用标准的Javadoc工具将聚合器项目中的主Java code的Javadoc文档绑定到jar中。”javadoc:aggregate-no-fork:“使用标准的Javadoc工具为聚合器项目中的生成文档。这让我有点困惑。当文档提到“聚合器项目”时,意味着什么?它是否指使用集料POM的项目,其中父POM列出了几个正在聚合的子项目POMs?然而,为什么要改变使用Maven Javadoc插件的目标呢?
多年来,我在“根POM”中为我的所有项目设置了Maven Javadoc插件。它使用javadoc:jar目标。它为继承它的子项目设置插件配置。一些子项目是独立的单一POM项目。其中一些是聚合的波姆斯。我从来没有遇到过这样的问题。
我应该在某些项目中使用javadoc:jar目标,对其他项目使用javadoc:aggregate-jar吗?但是,根POM如何知道子项目是否是聚合项目?如果我继续在所有事情上使用javadoc:jar目标,会发生什么?
(作为奖励,这一单独的javadoc:aggregate-no-fork目标是什么?)
发布于 2022-10-23 11:48:22
是的,“聚合器项目”指的是项目聚合。使用javadoc:jar或javadoc:aggregate-jar会产生不同的输出:
javadoc:jar将在所有模块上执行,如您在输出中看到的:
信息构建家长0.0.0-快照1/3 .不执行Javadoc的信息,因为这个项目不是一个支持Java类路径的包.信息构建module1 0.0.0-快照2/3 .信息建筑jar: /module1/target/module1-0.0.0-SNAPSHOT-javadoc.jar ..。信息构建module2 0.0.0-快照3/3 .信息构建jar: /module2/target/module2-0.0.0-SNAPSHOT-javadoc.jar信息信息反应堆总结为家长0.0.0-快照: INFO家长...成功0.942 s module1 .成功1.154 s module2 .成功1.126 s信息构建成功
在每个模块的target文件夹中创建单独的Javadoc输出,并将其打包到单独的JAR中。
仅在父服务器上使用javadoc:jar运行--non-recursive不会输出任何内容。javadoc:aggregate-jar的执行只在父程序上运行:
信息构建家长0.0.0-快照1/3 .信息>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>信息分叉module1 0.0.0-快照信息>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .信息>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>信息分叉module2 0.0.0-快照信息>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> .信息构建jar: /目标/父-0.0.0-快照-javadoc.jar信息信息反应堆总结家长0.0.0-快照: INFO家长...成功2.971 s module1 .跳过的资讯module2 .跳过信息信息建立成功
Javadoc只在父/target/apidocs的一个地方创建,捆绑在一个JAR中。
对模块跳过Javadoc插件,但是父执行为每个模块创建执行compile阶段的分叉构建,以确保所有用于Javadoc处理的输入(即生成的源)都存在。javadoc:aggregate-no-fork并不会创建分叉构建,而是在生成Javadocs的每个模块上递归运行。
信息构建家长0.0.0-快照1/3 .信息没有找到以前的运行数据,生成javadoc。..。信息构建module1 0.0.0-快照2/3 .信息没有找到以前的运行数据,生成javadoc。..。信息构建module2 0.0.0-快照3/3 .信息没有找到以前的运行数据,生成javadoc。信息信息反应堆概述家长0.0.0-快照: INFO家长..成功1.909 s module1 .成功1.082 s module2 .成功0.991 s信息构建成功
...and还将它们聚合到父级的/target/site/apidocs中。这个命令是意欲,可以在CI环境中使用,因为所有源都已经准备好了。
与前面的命令相反,没有创建JAR。https://stackoverflow.com/questions/74034804
复制相似问题