maven站点插件3.3 java.lang.ClassNotFoundException:org.apache.maven.doxia.siterenderer.DocumentContent

时间:2018-06-28 21:35:22

标签: java maven

从今天晚上开始,Maven网站3.3插件停止工作。

尝试删除本地存储库,但没有更改。 Maven的3.3.9 Java 1.8

在pom中没有为站点插件定义任何配置或依赖项

%data%

8 个答案:

答案 0 :(得分:74)

在构建期间,我也刚刚开始遇到此问题。对我有用的是专门定义maven-site-pluginmaven-project-info-reports-plugin以及pom中的版本号。

<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>

答案 1 :(得分:47)

这是由于maven-project-info-reports-plugin更新为3.0.0引起的,并且依赖于doxia-site-renderer 1.8(并且具有org.apache.maven.doxia.siterenderer.DocumentContent此类),但是maven-site-plugin:3.3依赖于doxia-site-renderer:1.4(并且没有org.apache.maven.doxia.siterenderer.DocumentContent)

我们可以在报告部分中使用特定的maven-project-info-reports-plugin版本:

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

或者我们可以将maven-site-plugin指定为最新的3.7.1,例如:

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

在pom的一部分中构建

答案 2 :(得分:6)

Maven网站插件的版本也需要在build部分中明确设置。这是示例:

<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>

答案 3 :(得分:1)

我今天在一些构建工作中也遇到了这个错误。上面建议的修复程序,为maven-site-plugin添加了一个具体的依赖项,确实可以解决该问题。

但是,对我而言突出的是我什至在运行mvn网站目标,我什至不知道我们正在运行并且我们并不需要。

因此,我的解决方法是从我的mvn arg中删除网站目标,因为尽管它创建的网站实际上非常有用,但我不知道我们在创建它,我们从未在任何地方发布过它,实际上无论如何在每个构建中都删除了它。

答案 4 :(得分:1)

Maven 3不再支持Doxia。

使用

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

参考:https://maven.apache.org/plugins/maven-site-plugin/maven-3.html

答案 5 :(得分:0)

您确实需要添加更多信息(我并没有拒绝BTW投票)。

IIRC;如果您未为绑定到生命周期阶段的插件指定版本,则将获取最新版本。

尝试:

  • 升级到最新版本的maven-3.5.4 ATOW
  • 运行mvn help:effective-pom并检查哪个版本 实际正在解决-如果您有来自CI或其他任何地方的旧日志 与...进行比较。
  • 显式设置maven-site-plugin版本 在pluginManagement部分
  • maven-site-plugin添加依赖项(见下文)

org/apache/maven/doxia/siterenderer/DocumentContent可在doxia-site-renderer中找到:

    <dependency>
        <groupId>org.apache.maven.doxia</groupId>
        <artifactId>doxia-site-renderer</artifactId>
        <version>1.8.1</version>
    </dependency>

我怀疑将maven-site-plugin的版本显式设置为您曾经使用过的版本(偶然)是可以的。


编辑:在maven插件构建测试中遇到了类似的问题,在maven-site-plugin使用的集成pom中显式设置maven-invoker-plugin版本(3.7.1 ATOW)已解决了问题我。

答案 6 :(得分:0)

我尝试遵循彰化的建议,并在pom文件中将maven-project-info-reports-plugin定义为3.0.0版本,并将maven-site-plugin定义为3.7.1,但是发现maven站点仍然被拉在3.3版的maven-site-plugin中,无论我如何设置。

我终于意识到我的问题与我们的项目结构有关。我们有一个父pom,在其中定义了maven-site-plugin依赖关系,然后再由子pom继承。但是,build pom文件是单独的,并且根本没有定义maven-site-plugin,这允许maven自己引入3.3版本。我将maven-site-plugin依赖关系(版本3.7.1)添加到了构建pom文件中,以便它现在同时存在于构建pom文件和父pom文件中,并且现在该构建正确使用了3.7.1版,然后又过去了。

答案 7 :(得分:0)

pom.xml中的以下版本为我解决了该问题:

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