Как выполнить maven плагин _after_ все сборки модулей завершают

В частности, я пытаюсь запустить maven-javadoc-plugin, но всякий раз, когда я меняю номера версий на родительском/агрегаторном pom и всех дочерних элементах, при первом запуске сборки он терпит неудачу, потому что javadoc запускается первым и не может найти любой из пакетов новой версии из модулей, потому что они еще не построены.

Мне обычно приходится комментировать javadoc out для одной сборки, а затем добавлять его обратно, как только пакеты доступны в nexus для новой версии. Однако это, вероятно, означает, что я все время строил javadoc на одной сборке старых исходных банок.

Я читал предложения по добавлению другого модуля, который зависит от других, но я не думаю, что могу получить модуль для создания javadoc для одноранговых модулей. Наличие в родительском сборнике всех javadoc для всех модулей, мне просто нужно, чтобы это произошло позже. Благодарю. Здесь моя конфигурация плагина javadoc.

                    <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <inherited>false</inherited>
                    <executions>
                        <execution>
                            <id>generate-javadoc</id>
                            <phase>package</phase>
                            <goals>
                                <goal>aggregate</goal>
                            </goals>
                            <configuration>
                                <aggregate>true</aggregate>
                                <links>
                                    <link>http://java.sun.com/javase/6/docs/api</link>
                                    <link>http://java.sun.com/javaee/5/docs/api</link>
                                </links>
                                <maxmemory>512</maxmemory>
                                <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
                                <docletArtifact>
                                    <groupId>org.umlgraph</groupId>
                                    <artifactId>doclet</artifactId>
                                    <version>5.2</version>
                                </docletArtifact>
                                <additionalparam>
                                    -inferrel -inferdep -outputencoding utf8 -hide
                                    java.* -collpackages
                                    java.util.*
                                    -qualify -postfixpackage
                                    -nodefontsize 9 -nodefontpackagesize 7
                                </additionalparam>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

Ответ 1

Один из способов обойти эту проблему - не, чтобы вызвать плагин javadoc в фазе жизненного цикла normal maven; вместо этого запустите его отдельно.

Чтобы быть конкретным, удалите тег <phase> из приведенного выше определения plugin.

Запустите mvn install javadoc:javadoc от родителя.

Это создаст и установит все модули и родителя, а затем запустит javadoc на них.

Ответ 2

Является ли ваше объявление плагина javadoc частью <build> вашего pom. Вы должны переместить его в часть <reporting>, см. Ссылку .