【问题标题】:Maven multi-module project site with javadocs带有 javadocs 的 Maven 多模块项目站点
【发布时间】:2011-08-21 02:51:57
【问题描述】:

我想使用 Maven 为我的应用程序创建站点。这是一个多模块app,父模块是简单的站点模块,第一个子是app的核心,第二个是GUI(Swing)。

我现在对父 pom.xml 使用关注

<modules>
    <module>core</module>
    <module>kayako-desktop</module>
</modules>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-site-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <locales>en</locales>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.7</version>
            <executions>
                <execution>
                    <phase>install</phase>
                    <goals>
                        <goal>aggregate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
<reporting>
    <plugins>
        <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <aggregate>true</aggregate>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-changes-plugin</artifactId>
            <version>2.4</version>
        </plugin>
    </plugins>
</reporting>

我的核心的 pom:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.7</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <id>attach-javadocs</id>
                    <goals>
                        <goal>jar</goal>
                        <goal>javadoc</goal>
                    </goals>
                </execution>

            </executions>
        </plugin>
    </plugins>
</build>
<reporting>
    <plugins>
        <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <links>
                    <link>http://download.oracle.com/javase/6/docs/api/</link>
                </links>    
            </configuration>
        </plugin>    
    </plugins>

</reporting>

(我从两者中删除了不相关的部分)

问题:我尝试了 mvn site:stage,但 javadoc 没有从核心模块中收集。我哪里错了?

【问题讨论】:

标签: java maven-2 javadoc maven-site-plugin maven-javadoc-plugin


【解决方案1】:

在父 pom 的 maven-site-plugin 配置的 &lt;reportPlugins&gt; 部分配置 javadoc 插件。

这对我有用。

在父 pom 中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <reportPlugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.9</version>
                        <reportSets>
                            <reportSet>
                                <id>aggregate</id>
                                <reports>
                                    <report>aggregate</report>
                                </reports>
                            </reportSet>
                        </reportSets>
                        <configuration>
                        <!-- Here you can add special configurations for your javadoc, if needed -->
                        </configuration>
                    </plugin>
                    <!-- Here you can also configure more report plugins -->
                    <!-- for your site, such as maven-project-info-reports-plugin -->
                </reportPlugins>
            </configuration>
        </plugin>
    <!-- ... -->
    </plugins>
</build>
<!-- ... -->
<distributionManagement>
    <site>
        <id>website</id>
        <url>http://site.url/can/be/tentative/or/hypothetical</url>
    </site>
</distributionManagement>

在每个子 pom 中,您还可以为站点插件配置特定报告,例如,surefire 测试报告或项目信息。但是,您不需要在其中放置任何 javadoc 插件配置(除非您还希望子模块使用非聚合 javadoc)。

然后您应该能够从父目录执行mvn site site:stage。要查看汇总的 javadocs,请将浏览器指向该目录中的 target/staging/index.html,然后单击页面左侧索引中的“Project Reports”,然后单击“JavaDocs”。

补充提示:

有时我想快速查看汇总的 javadocs,而不必执行整个 site site:stage,这会做更多的事情并花费更长的时间。因此,我还直接在父 pom 的 &lt;plugin&gt; 部分中包含了 maven-javadoc-plugin 的配置。这样,我可以运行mvn javadoc:aggregate 并快速获取target/site/apidocs/index.html 中的聚合javadocs。

【讨论】:

  • 谢谢。提到的项目不再是我的项目,但我会在我的另一个项目中使用你的提示。而且我之前不知道site:stage target,这个很有用!
猜你喜欢
  • 2013-12-20
  • 2010-10-29
  • 1970-01-01
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多