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

mbr*_*eck 5 maven-plugin maven-3 maven maven-site-plugin

我遇到了Maven站点插件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,因此我在“ Effective 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>
Run Code Online (Sandbox Code Playgroud)

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

我正在使用Maven版本3.2.1。

Bor*_*ris 5

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

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

<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>
Run Code Online (Sandbox Code Playgroud)

在Maven 3.1.0之前

version 3.2
Run Code Online (Sandbox Code Playgroud)

从Maven 3.1.0开始

version 3.3
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参见此提交

问题修复

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

version 3.2
Run Code Online (Sandbox Code Playgroud)

然后生成一个项目站点:

$ 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
...
Run Code Online (Sandbox Code Playgroud)

  • 你的建议还不够,我还需要添加一个执行: `&lt;plugin&gt; &lt;artifactId&gt;maven-site-plugin&lt;/artifactId&gt; &lt;version&gt;3.9.1&lt;/version&gt; &lt;executions&gt; &lt;execution&gt; &lt;id&gt;附加描述符&lt;/id&gt; &lt;目标&gt; &lt;目标&gt;附加描述符&lt;/目标&gt; &lt;/目标&gt; &lt;/执行&gt; &lt;/执行&gt; &lt;/插件&gt;` (2认同)