Maven的网站插件3.3抛出java.lang.ClassNotFoundException:org.apache.maven.doxia.siterenderer.DocumentContent

问题描述 投票:58回答:8

由于这个夜晚,Maven站点3.3插件停止工作。

尝试删除本地存储库,但没有任何变化。 Maven的3.3.9的Java 1.8

没有配置或依赖POM中定义的网站插件

[WARNING] Error injecting: org.apache.maven.report.projectinfo.CiManagementReport
java.lang.NoClassDefFoundError: org/apache/maven/doxia/siterenderer/DocumentContent
java maven
8个回答
83
投票

我刚开始觉得这个问题也时建立。什么工作对我来说是具体定义maven-site-plugin并与在POM版本号沿maven-project-info-reports-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.0.0</version>
</plugin>

48
投票

这是由Maven的项目信息的报告,插件更新到3.0.0引起的,并依靠doxia现场渲染器1.8(并org.apache.maven.doxia.siterenderer.DocumentContent这个类),但行家现场-plugin:3.3依靠doxia现场渲染器:1.4(不具备org.apache.maven.doxia.siterenderer.DocumentContent)

我们可以在报告部分特定Maven的项目信息的报告插件版本:

<reporting>
        <plugins>           
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.9</version>
            </plugin>           
        </plugins>    
    </reporting>

或者,我们可以指定Maven的网站插件到最新3.7.1所示:

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

在聚甲醛的生成部分


8
投票

需要Maven站点插件的版本在构建部分明确设置了。这里是例子:

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>3.0.0</version>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>index</report>
                        <report>licenses</report>
                        <report>dependency-info</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
    </plugins>
</reporting>

<build>
    <plugins>
        <!-- Part of Maven - specified version explicitly for compatibility
             with the maven-project-info-reports-plugin 3.0.0-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.7.1</version>
        </plugin>
    </plugins>
</build>

1
投票

你真的需要添加更多的信息(我没有BTW downvote)。

IIRC;如果你不绑定到生命周期阶段插件指定版本,你会得到最新的。

尝试:

  • 升级到行家的最新版本 - 3.5.4 ATOW
  • 运行mvn help:effective-pom并检查其版本真的被解决 - 如果你有一个旧的日志从CI或任何具有比较..
  • 明确设置在qazxsw POI部分qazxsw POI版本
  • 添加依赖于maven-site-plugin(见下文)

pluginManagement可以maven-site-plugin找到:

org/apache/maven/doxia/siterenderer/DocumentContent

我怀疑明确设置Maven的网站插件的版本,无论你习惯用(顺便说一下)会工作。


编辑:追逐在Maven插件构建测试一个类似的问题,明确设置doxia-site-renderer <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-site-renderer</artifactId> <version>1.8.1</version> </dependency> 使用集成POM版本(3.7.1 ATOW)已为我工作。


1
投票

我也创下今天我的一些建设工作的这个错误。此修复程序上面建议,增加了混凝土的依赖的Maven的网站插件不工作,并修复了这个问题。

然而,它强调对我来说是我甚运行Maven站点的目标,我甚至不知道我们运行的是,我们并不真正需要的事实。

我的修复是从,因此我MVN ARG删除站点的目标,因为虽然它创建的网站实际上是非常有用的,我从来不知道我们正在创造它,我们从来没有在任何地方发表,并进行了实际删除它的每一个建立反正。


1
投票

Maven的3不支持Doxia了。

采用

maven-site-plugin

参考:maven-invoker-plugin


1
投票

在pom.xml中下面的版本修复了这个问题对我来说:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-project-info-reports-plugin</artifactId>
  <version>2.2</version>
</plugin>

0
投票

我试图按照彰化的建议,并定义Maven的项目信息的报告,插件版本3.0.0,和Maven的网站插件在我的POM文件3.7.1,却发现Maven站点仍然拉到3.3版本行家现场-插件,无论我如何设置它。

我终于明白了,我的问题已经与我们的项目结构做。我们有一个父POM,我们在其中被定义Maven的网站插件依赖性,然后由孩子继承POMS。然而,构建POM文件是独立的,并没有在所有定义Maven的网站插件,它允许行家在3.3版本上自己的拉。我加入了Maven的网站插件依赖性(3.7.1版本)来构建POM文件,所以它现在存在于两个构建POM文件和父POM文件,现在的版本是正确使用版本3.7.1,并再次传递。

© www.soinside.com 2019 - 2024. All rights reserved.