在mvn安装操作过程中,我使用以下代码为生成的Javadoc生成一个ZIP:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>docs-assembly</id>
<phase>package</phase>
<configuration>
<finalName>${project.build.finalName}-${project.version}-Javadoc</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assemble.xml</descriptor>
</descriptors>
</configuration>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
但是如果我想通过启动mvn javadoc:javadoc来生成这个ZIP文件,则不会生成ZIP文件:
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>docs-assembly</id>
<phase>package</phase>
<configuration>
<finalName>${project.build.finalName}-${project.version}-Javadoc</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assemble.xml</descriptor>
</descriptors>
</configuration>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
我只是复制/粘贴执行,但docs-assembly没有使用javadoc:javadoc执行...为什么在javadoc:javadoc调用期间没有调用它?
1条答案
按热度按时间ozxc1zmp1#
你的主要问题是:为什么
javadoc:javadoc
调用时不调用maven-assembly-plugin:single
?为此,你需要理解生命周期和插件目标之间的区别。插件目标是一个单一的任务,很容易通过冒号识别。所以javadoc:javadoc
是一个插件目标。把一个生命周期看作是一组有序的插件目标。你可以把一个生命周期称为阶段(没有冒号),Maven知道需要执行哪些插件。package
是一个生命周期阶段。因此,如果调用
javadoc:javadoc
,这将是唯一的任务,Maven没有理由也执行maven-assembly-plugin:single
。顺便说一句,你试过
javadoc:jar
吗?你应该知道jar只是一个额外的zip文件。