Моя установка выглядит так:
git repo
|
+—+ project0
| |
| +— parent-pom.xml for all projects but the main-project
| contains the common plugins to build each project, but no source-code. needs not to build
|
+-+ project1
| |
| +- pom.xml
|
+-+ procect2
| |
| +- pom.xml
|
+-+ project-main
|
+- aggregation-pom.xml
but no code
мой агрегат-pom выглядит так:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.group</groupId>
<artifactId>my-main</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<properties>
<!-- Source encoding -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- javadoc -->
<javadoc.skip>false</javadoc.skip>
<javadoc.quiet>true</javadoc.quiet>
<javadoc.failOnError>false</javadoc.failOnError>
<javadoc.reportOutputDirectory>${project.build.directory}</javadoc.reportOutputDirectory>
<javadoc.bin>${java.home}/bin/javadoc</javadoc.bin>
</properties>
<modules>
<module>../myprj-core</module>
<module>../myprj-logic</module>
</modules>
<distributionManagement>
<site>
<id>product-site</id>
<url>https://www.myhome.my/documentation/product/myprojcet-doc</url>
</site>
</distributionManagement>
<!--
#####################
# default lifecycle #
#####################
-->
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>${java.version}</release>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<!--
using versions 3.2.0
causes the aggregate goal to "do nothing"
-->
<version>3.0.1</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
</plugin>
</plugins>
</build>
<!--
##################
# site lifecycle #
##################
-->
<!--
reporting is done during 'site' lifecycle
-->
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!--
Surefire Report
aggregate, but report-only since the tests have already been executed
during default lifecycle/surefire-plugin for each module
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<aggregate>true</aggregate>
<alwaysGenerateSurefireReport>true</alwaysGenerateSurefireReport>
<showSuccess>true</showSuccess>
<linkXRef>false</linkXRef>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
</reports>
</reportSet>
</reportSets>
</configuration>
</plugin>
<!--
Javadoc aggregation
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<skip>${javadoc.skip}</skip>
<failOnError>${javadoc.failOnError}</failOnError>
<quiet>${javadoc.quiet}</quiet>
<javadocExecutable>${javadoc.bin}</javadocExecutable>
<show>private</show>
</configuration>
<reportSets>
<reportSet>
<id>aggregate javadoc</id>
<inherited>false</inherited>
<reports>
<report>aggregate</report>
<!--
<report>aggregate-no-fork</report>
<report>test-aggregate-no-fork</report>
-->
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
</project>
Я выполняю 'mvn clean install site', и все создается как ожидается для индивидуальных проектов. я действительно получаю созданный целевой / сайт, содержащий сайт, javado c, уверенный отчет,…
, но для проекта агрегации (project-main) агрегированный javado c является единственным отсутствующим вещь. я получаю сайт и агрегированные отчеты об уверенности.
при использовании версии 3.0.1 вместо 3.2.0 все в порядке.
Я прочитал этот пост: Maven javado c плагин 3.1.0 не генерирует совокупные javadocs . это заставило меня протестировать более старую версию (3.0.1), но на самом деле мне не известно, какое решение работает для меня, так как я считаю, что правильно объявил модули.
спасибо за любой совет.