我想使用聚合目标为我的整个项目生成javadoc,但我也想为多个子项目生成javadoc jar。在我的父pom.xml中,我添加了以下pluginManagement,以允许子项目轻松生成javadoc jar:
<project>
...
<build>
<pluginManagement>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
...
然后在需要javadoc jar的子项目中添加:
<project>
...
<build>
<plugins>
<plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
...
到目前为止,一切都很好。现在,我想使用聚合目标来获取完整的javadoc集合,因此我在父pom中添加了对javadoc插件的另一个引用:
<project>
...
<build>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
...
这导致javadoc插件被拉入每个子项目,而不仅仅是需要它的少数子项目。罐子目标和聚合目标似乎可以很好地独立运行,但是一起使用会引起问题。有人解决过这样的事情吗?
提前致谢!
最佳答案
我通过执行类似的操作来弄清楚了:Can I configure multiple plugin executions in pluginManagement, and choose from them in my child POM?基本上,我在两个执行中都添加了一个ID,在javadoc jar实例中添加了一个都不添加的阶段。然后,我将阶段重新覆盖,仅打包到需要javadoc jar的子项目中。这是父pom中的pluginManagement:
<project>
...
<build>
<pluginManagement>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<id>javadoc-jar</id>
<phase>none</phase>
<goals>
<goal>jar</goal>
</goals>
...
然后在需要的子项目pom中,打开以下Javadoc jar:
<project>
...
<build>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>javadoc-jar</id>
<phase>package</phase>
</execution>
</executions>
</plugin>
...
关于java - 同时使用javadoc的聚合和jar目标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20320378/