Sup*_*tux 18 java maven-2 javadoc maven-plugin
使用Maven javadoc插件可以排除某些包 - 但是我有很多包,只有少数几个我想要生成Javadoc的类.
有没有办法包括而不是排除?
我也想在类级别而不是包级别上做事情,因为我在一个包中需要javadoc和一些不需要javadoc的类.
RCr*_*oss 16
从maven-javadoc-plugin版本2.9开始,您可以在配置中执行此操作:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<configuration>
....
<sourceFileIncludes>
<include>Foo.java</include>
<include>Bar.java</include>
</sourceFileIncludes>
<sourcepath>${basedir}/src/main/java/path/to/foo-and-bar</sourcepath>
....
</configuration>
....
Run Code Online (Sandbox Code Playgroud)
...它将构建一个仅包含上述类的Javadoc站点.
she*_*hek 14
使用maven-javadoc-plugin,您无法指定特定的java classess(尽管您可以使用javadoc实用程序,请参阅下文).但是,通过javadoc:javadoc目标的sourcepath配置选项,您可以配置特定的包.一个例子如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.5</version>
<configuration>
<charset>UTF-8</charset>
<docencoding>UTF-8</docencoding>
<docfilessubdirs>true</docfilessubdirs>
<links>
<link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
</links>
<show>protected</show>
<source>1.5</source>
<sourcepath>${basedir}/src/main/java/com/acme/foo</sourcepath>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
Run Code Online (Sandbox Code Playgroud)
在此示例中,com.acme.foo包下的所有类(包括子包)都将生成javadoc.
应该注意的是,这个Maven插件只是Sun的javadoc实用程序的包装器.因此,javadoc的大多数文档和配置都适用于此插件.请参阅Sun有关javadoc sourcepath参数的文档.
在maven-javadoc-plugin功能不同的区域中,Sun的sourcepath参数文档提到可以使用javadoc实用程序为特定类生成javadoc.maven-javadoc-plugin不提供此功能.Sun的文档中显示了一个示例:
C:> cd C:\home\src\java\awt
C:> javadoc -d C:\home\html Button.java Canvas.java Graphics*.java
Run Code Online (Sandbox Code Playgroud)
简单来说,当你使用<subpackages/>Maven2-Plugin 的配置标签时,例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<configuration>
<sourceEncoding>ISO-8859-1</sourceEncoding>
<quiet>true</quiet>
<aggregate>true</aggregate>
<code>javadoc:aggregate</code>
<code>javadoc:test-aggregate</code>
<doclet>gr.spinellis.umlgraph.doclet.UmlGraphDoc</doclet>
<docletArtifact>
<groupId>gr.spinellis</groupId>
<artifactId>UmlGraph</artifactId>
<version>4.6</version>
</docletArtifact>
<additionalparam>
-inferrel -inferdep -quiet -hide java.*
-collpackages java.util.* -qualify
-postfixpackage -nodefontsize 9
-nodefontpackagesize 7
</additionalparam>
<subpackages>
de.interforum.gms.db.domain:de.interforum.sdr.db.domain
</subpackages>
</configuration>
<executions>
<execution>
<goals>
<goal>javadoc</goal>
<goal>test-javadoc</goal>
</goals>
<phase>site</phase>
<configuration>
<!-- Specific configuration for the given reports ... -->
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
最后,我使用sourcepath配置选项指定了两个包含我想要Javadoc的类的包,并在那些我不希望Javadoc默认访问的包中提供了类.将show配置选项设置为public允许我通过设置对public的访问来选择生成Javadoc的类.完整配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<links>
<link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
</links>
<source>1.5</source>
<show>public</show>
<doctitle>Foo API</doctitle>
<title>Foo API</title>
<bottom><![CDATA[Copyright notice]]></bottom>
<sourcepath>${basedir}/src/main/java/com/foo/api;${basedir}/src/main/java/com/bar/api</sourcepath>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
然而,这基本上是一种解决方法,我非常同意shek的评论,即这应该是对maven-javadoc-plugin的增强,因为它受到javadoc实用程序的支持.http://jira.codehaus.org/browse/MJAVADOC
| 归档时间: |
|
| 查看次数: |
18292 次 |
| 最近记录: |