我正在尝试为我项目中的所有模块创建一个聚合Javadoc站点,但我似乎无法以令人满意的方式配置插件.主要是,我似乎无法在检测链接和排除某些包时聚合javadoc.从本质上讲,似乎完全忽略了插件的配置.
我有一个root pom.xml,它引用了一堆子模块并包含以下配置:
<modules>
<module>foo</module>
<module>bar</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.maven.apache.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>aggregate</id>
<phase>site</phase>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>
<links>
<link>http://docs.oracle.com/javase/6/docs/api</link>
<link>http://static.netty.io/3.5/api</link>
<link>http://google-guice.googlecode.com/git/javadoc</link>
<link>http://docs.guava-libraries.googlecode.com/git-history/release/javadoc</link>
<link>http://fasterxml.github.com/jackson-databind/javadoc/2.0.4</link>
<link>https://developers.google.com/protocol-buffers/docs/reference/java</link>
</links>
<bootclasspath>${sun.boot.class.path}</bootclasspath>
<additionalJOption>-J-Xmx1024m</additionalJOption>
<detectJavaApiLink>true</detectJavaApiLink>
<detectLinks>true</detectLinks>
<excludePackageNames>*.testing.*</excludePackageNames>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
但是,当我mvn javadoc:aggregate使用此设置运行时,我最终得到一个javadoc站点,该站点没有指向任何引用库的链接,并且仍包含所有测试类.
我甚至没有看到插件试图下载每个声明的链接源的包列表.
另一方面,为每个单独的模块生成javadoc可以正常工作并且符合预期.
我错了什么?
插件配置可以放在两个级别上; execution标签内部或外部("全局").
当配置在execution标记内部时,它属于该特定执行.在您的情况下,您必须运行mvn site它才能执行,因为它绑定到该阶段.
使用该mvn javadoc:aggregate命令时,它会查找"全局"配置.在你的pom中没有这样的配置,因此它使用默认配置.
将您的插件配置更改为:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<configuration>
<links>
<link>http://docs.oracle.com/javase/7/docs/api</link>
<link>http://static.netty.io/3.5/api</link>
<link>http://google-guice.googlecode.com/git/javadoc</link>
<link>http://docs.guava-libraries.googlecode.com/git-history/release/javadoc</link>
<link>http://fasterxml.github.com/jackson-databind/javadoc/2.0.4</link>
<link>https://developers.google.com/protocol-buffers/docs/reference/java</link>
</links>
<bootclasspath>${sun.boot.class.path}</bootclasspath>
<additionalJOption>-J-Xmx1024m</additionalJOption>
<detectJavaApiLink>true</detectJavaApiLink>
<detectLinks>true</detectLinks>
<excludePackageNames>*.testing.*</excludePackageNames>
</configuration>
<executions>
<execution>
<id>aggregate</id>
<phase>site</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
您可以configuration在execution部件内部放置以覆盖和专门化该执行的配置.
顺便说一句的<groupId>是错在你的POM.它应该是
<groupId>org.apache.maven.plugins</groupId>
Run Code Online (Sandbox Code Playgroud)
并不是
<groupId>org.maven.apache.plugins</groupId>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3451 次 |
| 最近记录: |