簡體   English   中英

站點目標的 Javadoc 插件模塊錯誤

[英]Javadoc Plugin Module Error with Site target

我正在嘗試使用 maven 的站點目標來生成 javadoc,但我得到的結果不一致。 我創建了一個精簡的示例項目進行測試,當我執行站點目標和構建目標(例如, mvn package sitemvn compile site )時,它工作正常。 但是,如果我只使用站點目標(即mvn site )執行,我會收到錯誤:

    Exit code: 1 - error: module not found: foo.bar

我檢查了生成的選項文件,當包含構建目標時,--module-path 參數包含我的目標/類路徑,但只有站點目標不包含該路徑。

有誰知道 javadoc 插件如何配置那些 arguments 以及如何讓它同時工作?

這是我的測試 pom.xml 文件:

<modelVersion>4.0.0</modelVersion>

<groupId>foo.bar</groupId>
<artifactId>MyProgram</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>

<name>MyProgram</name>
<description>
    This is a sample program.
</description>
<inceptionYear>2020</inceptionYear>

<properties>
    <java.source>11</java.source>
    <java.target>11</java.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <clean.plugin.version>3.1.0</clean.plugin.version>
    <compiler.plugin.version>3.8.0</compiler.plugin.version>
    <dependency.plugin.version>3.1.2</dependency.plugin.version>
    <install.plugin.version>3.0.0-M1</install.plugin.version>
    <jar.plugin.version>3.2.0</jar.plugin.version>
    <javadoc.plugin.version>3.2.0</javadoc.plugin.version>
    <resources.plugin.version>3.1.0</resources.plugin.version>
    <surefire.plugin.version>3.0.0-M3</surefire.plugin.version>
    <versions.plugin.version>2.7</versions.plugin.version>

    <jakarta.version>2.3.2</jakarta.version>

    <project.site.root.path>${CATALINA_HOME}/webapps/projects</project.site.root.path>
</properties>

<distributionManagement>
    <site>
        <id>foo.bar</id>
        <url>file:${project.site.root.path}/${project.artifactId}</url>
    </site>
</distributionManagement>

<dependencies>
    <!-- https://mvnrepository.com/artifact/jakarta.xml.bind/jakarta.xml.bind-api -->
    <dependency>
        <groupId>jakarta.xml.bind</groupId>
        <artifactId>jakarta.xml.bind-api</artifactId>
        <version>${jakarta.version}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>5.7.0-M1</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-commons -->
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-commons</artifactId>
        <version>1.7.0-M1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>

    <pluginManagement>
        <plugins>
            <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-dependency-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${dependency.plugin.version}</version>
            </plugin>
            <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-resources-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>${resources.plugin.version}</version>
            </plugin>
            <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-site-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.9.0</version>
                <configuration>
                    <locales>en</locales>
                    <generateSiteMap>true</generateSiteMap>
                </configuration>
            </plugin>
            <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-javadoc-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${javadoc.plugin.version}</version>
                <configuration>
                    <source>${java.source}</source>
                    <show>protected</show>
                    <nohelp>true</nohelp>
                    <detectLinks>false</detectLinks>
                    <detectOfflineLinks>false</detectOfflineLinks>
                    <detectJavaApiLink>true</detectJavaApiLink>
                    <failOnWarnings>true</failOnWarnings>
                    <additionalparam>${javadoc.opts}</additionalparam>
                    <sourcepath>${project.basedir}/src/main/java</sourcepath>
                    <subpackages>${javadoc.package}</subpackages>
                    <additionalJOption>-Xdoclint:all</additionalJOption>
                    <links>
                        <link>https://javadoc.io/doc/jakarta.xml.bind/jakarta.xml.bind-api/${jakarta.version}/</link>
                    </links>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>

    <plugins>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-clean-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-clean-plugin</artifactId>
            <version>${clean.plugin.version}</version>
        </plugin>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-jar-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>${jar.plugin.version}</version>
        </plugin>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-install-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>${install.plugin.version}</version>
        </plugin>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${surefire.plugin.version}</version>
        </plugin>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-checkstyle-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <configLocation>google_checks.xml</configLocation>
                <encoding>${project.build.sourceEncoding}</encoding>
                <consoleOutput>true</consoleOutput>
                <failsOnError>false</failsOnError>
                <failsOnViolation>true</failsOnViolation>
                <linkXref>false</linkXref>
            </configuration>
        </plugin>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${compiler.plugin.version}</version>
            <configuration>
                <source>${java.source}</source>
                <target>${java.target}</target>
                <showWarnings>true</showWarnings>
                <encoding>${project.build.sourceEncoding}</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

<reporting>

    <plugins>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-project-info-reports-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>3.0.0</version>
        </plugin>

        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-javadoc-plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>javadoc</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>

        <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/versions-maven-plugin -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
            <version>${versions.plugin.version}</version>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>dependency-updates-report</report>
                        <report>plugin-updates-report</report>
                        <report>property-updates-report</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>

    </plugins>
</reporting>

更令人困惑的是,我有另一個項目的行為完全相反: mvn site工作正常,但mvn package site會產生錯誤:

    Exit code: 2 - javadoc: error - No source files for package org.larrick.commons

對此的任何見解將不勝感激。

順便說一句:我正在使用 JDK 11 和 Maven 3.6.3。

這似乎是 Javadoc 插件的問題。 如果沒有構建步驟,則沒有為項目定義工件,因此不會將目標/類路徑(或 target.jar 文件)添加到 Javadoc 的 --module-path 參數中。

我正在聯系 Maven 插件團隊以確定修復程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM