Невозможно создать агрегированный javado c через aggregation-pom - PullRequest
0 голосов
/ 18 июня 2020

Моя установка выглядит так:

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), но на самом деле мне не известно, какое решение работает для меня, так как я считаю, что правильно объявил модули.

спасибо за любой совет.

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