Maven javadoc 插件 - 如何只包含某些类?

2022-09-02 08:52:30

使用Maven javadoc插件,您可以排除某些软件包 - 但我有很多软件包,只有少数类我想为之生成Javadoc。

有没有办法包括而不是排除?

我也想在类级别而不是包级别上做事,因为我在包中有一些类需要javadoc,而有些不需要。


答案 1

从 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>
  ....

...这将构建一个Javadoc站点,仅包含上述类。


答案 2

使用maven-javadoc-plugin,你不能指定特定的java类(尽管你可以使用javadoc实用程序,见下文)。但是,通过 javadoc:javadoc 目标的源路径配置选项,您可以配置特定的包。下面是一个示例:

<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>

在此示例中,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

推荐