Мультимодульный сайт проекта Maven с javadocs - PullRequest
3 голосов
/ 08 мая 2011

Я хотел бы использовать Maven для создания сайта для моего приложения. Это многомодульное приложение, родительский модуль - это простой модуль сайта, первый дочерний элемент - ядро ​​приложения, второй - графический пользовательский интерфейс (Swing).

Теперь я использую follow для родительского 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 не собирается из основного модуля. Что я не прав?

1 Ответ

3 голосов
/ 10 июля 2013

Сконфигурируйте плагин javadoc в разделе <reportPlugins> конфигурации для maven-site-plugin, в родительском pom.

Вот что сработало для меня.

В родительском pompom:

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

В каждом из дочерних poms вы также можете настроить определенные отчеты для плагина сайта, например, отчеты о проверке достоверности или информацию о проекте.Однако вам не нужно размещать там какие-либо конфигурации плагинов javadoc (если вы не хотите также неагрегированные javadoc для ваших дочерних модулей).

После этого вы сможете сделать mvn site site:stage из родительского каталога.Чтобы просмотреть ваши агрегированные javadoc, наведите в своем браузере target/staging/index.html в этом каталоге и нажмите «Отчеты проекта», а затем «JavaDocs» в индексе в левой части страницы.

Дополнительный совет:

Иногда я хочу быстро взглянуть на агрегированные javadocs без необходимости делать целый site site:stage, который делает больше и занимает больше времени.Поэтому я также включил конфигурацию для maven-javadoc-plugin непосредственно в разделе <plugin> родительского pom.Таким образом, я могу запустить mvn javadoc:aggregate и быстро получить агрегированные javadocs в target/site/apidocs/index.html.

...