Генерация Javado c для многомодульного проекта - PullRequest
0 голосов
/ 18 апреля 2020

Я прочитал все, что я могу найти при решении этой проблемы, и мои попытки все еще терпят неудачу. Лучшее, что я могу сделать, - это показать Javado c ровно одного модуля, который был собран последним. (На данный момент я не пытаюсь связать Javado c в какие-либо JAR-файлы. Я также не пытаюсь сделать что-либо «site».) Я просто хочу поместить Javado c для быстрого доступа в подкаталог под проект root.

Вот что у моего родителя пом. xml:

<build>
  <plugins>
    .
    .
    .
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>3.2.0</version>
      <configuration>
        <noqualifier>all</noqualifier>
        <reportOutputDirectory>${user.dir}/documents</reportOutputDirectory>
        <destDir>javadoc</destDir>
      </configuration>
      <executions>
        <execution>
          <id>attach-javadocs</id>
          <phase>package</phase>
          <goals>
            <goal>jar</goal>
          </goals>
        </execution>
      </executions>
    </plugin>

То, что я вкладываю в подчиненного пом. * Файлы 1025 * идентичны приведенным выше, за исключением

          <goals>
            <goal>javadoc</goal>
          </goals>

, который я сыграл с заменой <execution> в родительском и иногда подчиненном pom. xml файлах с :

        <execution>
          <id>aggregate</id>
          <goals>
            <goal>aggregate</goal>
          </goals>
        </execution>

но это не имеет значения.

1 Ответ

1 голос
/ 18 апреля 2020

Я думаю, что следующая конфигурация является причиной того, что ваши отчеты будут перезаписаны:

<configuration>
  <reportOutputDirectory>${user.dir}/documents</reportOutputDirectory>
</configuration>

Все сборки модуля будут записаны в один и тот же каталог, следовательно, будут перезаписаны предыдущие сборки.

Решение использовать выходной каталог по умолчанию и вместо этого сконфигурировать выходной каталог для агрегированного javado c. Таким образом, сборка реактора создаст выходные файлы javado c в целевой директории каждого модуля. Затем их можно использовать для объединения совокупной цели.

Это можно сделать, настроив родительский POM следующим образом:

<build>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
            <!-- Default configuration for all reports -->
            <noqualifier>all</noqualifier>
            <destDir>javadoc</destDir>
        </configuration>
        <executions>
            <execution>
            <id>aggregate</id>
            <goals>
                <goal>aggregate</goal>
            </goals>
            <configuration>
                <!-- Specific configuration for the aggregate report -->
                <reportOutputDirectory>${user.dir}/documents</reportOutputDirectory>
                <destDir>javadoc</destDir>
            </configuration>
            </execution>
            ...
        </executions>
        </plugin>
        ...
    </plugins>
</build>

(нет необходимости в какой-либо дополнительной настройке в файлы модуля POM)

Агрегированный javado c теперь можно создать, запустив

mvn compile javadoc:javadoc javadoc:aggregate

(обратите внимание, что цель компиляции или пакета требуется для реактора для разрешения межмодульных зависимостей )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...