[英]Javadoc Plugin Module Error with Site target
我正在嘗試使用 maven 的站點目標來生成 javadoc,但我得到的結果不一致。 我創建了一個精簡的示例項目進行測試,當我執行站點目標和構建目標(例如, mvn package site或mvn 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.