我正在尝试为我的项目中的所有模块创建一个聚合Javadoc站点,但我似乎无法以令人满意的方式配置插件。主要的,我似乎不能让它在检测链接和排除某些包的同时聚合javadoc。基本上,插件的配置似乎被完全忽略了。
我有一个根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>但是,当我使用这个设置运行mvn javadoc:aggregate时,我得到的是一个javadoc站点,它没有指向任何被引用的库的链接,仍然包含所有的测试类。
我甚至没有看到插件试图下载每个声明的链接源的包列表。
另一方面,为每个单独的模块生成javadoc效果良好,符合预期。
我到底搞错了什么?
发布于 2012-11-07 18:02:18
插件配置可以放在两个层次上:在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>您可以在execution部件中放置一个configuration来覆盖和专门化该执行的配置。
BTW <groupId>在你的pom中是错误的。它应该是
<groupId>org.apache.maven.plugins</groupId>而不是
<groupId>org.maven.apache.plugins</groupId>https://stackoverflow.com/questions/13261571
复制相似问题