gpt4 book ai didi

maven - 为什么maven-site-plugin总是使用版本3.3?

转载 作者:行者123 更新时间:2023-12-04 18:56:38 28 4
gpt4 key购买 nike

我遇到了maven-site plugins 3.3 java.lang.ClassNotFoundException: org.apache.maven.doxia.siterenderer.DocumentContent中描述的相同问题

我正在尝试将maven-site-plugin(版本为3.7.1)和maven-project-info-reports-plugin-version(版本为3.0.0)设置为答案之一。我正在使用Eclipse,因此在“有效POM”选项卡中查找正在处理的pom文件,并且可以看到这些插件的版本分别是我指定的3.7.1和3.0.0。

但是,当我运行mvn help:effective-pom时,输出两次显示maven-site-plugin-一个我想要的版本是3.7.1,另一个是3.3版本。当我运行mvn site时,输出显示它正在使用maven-site-plugin 3.3。

所以我的问题是,对maven-site-plugin版本3.3的引用是从哪里来的,我如何强制它使用3.7.1?我已经在pom文件中指定了它,但是它仍然使用版本3.3。

这是我对maven-site-plugin的定义:

    <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>

顺便说一下,这是一个父pom文件,但这是我必须在其中或任何子pom文件中进行maven-site-plugin的唯一引用。

我正在使用Maven版本3.2.1。

最佳答案

Maven并不总是使用maven-site-plugin 3.3版。

实际上,在site生命周期内使用的插件版本是在maven-core/src/main/resources/META-INF/plexus/components.xml Apache Maven 项目本身中指定的:

<default-phases>
<site>
org.apache.maven.plugins:maven-site-plugin:3.3:site
</site>
<site-deploy>
org.apache.maven.plugins:maven-site-plugin:3.3:deploy
</site-deploy>
</default-phases>

在Maven 3.1.0之前
version 3.2

自Maven 3.1.0起
version 3.3

有关更多信息,请参见此 commit

问题修复

要覆盖 maven-site-plugin 版本,请将其添加到POM文件的 build部分,并将 maven-project-info-reports-plugin添加到 reporting。这是一个完整的工作示例:

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.mycompany</groupId>
<artifactId>mavenproject</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<url>http://www.your.site.com/</url>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
</plugins>
</build>

<reporting>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</reporting>

</project>

然后生成一个项目站点:
$ mvn site 

[INFO] Scanning for projects...
[INFO]
[INFO] ---------------------< com.mycompany:mavenproject >---------------------
[INFO] Building mavenproject 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-site-plugin:3.7.1:site (default-site) @ mavenproject ---
[INFO] configuring report plugin org.apache.maven.plugins:maven-project-info-reports-plugin:3.0.0
[INFO] 15 reports detected for maven-project-info-reports-plugin:3.0.0: ci-management, dependencies, dependency-info, dependency-management, distribution-management, index, issue-management, licenses, mailing-lists, modules, plugin-management, plugins, scm, summary, team
...

关于maven - 为什么maven-site-plugin总是使用版本3.3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51103120/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com