maven-site plugins 3.3 java.lang.ClassNotFoundException:org.apache.maven.doxia.siterenderer.DocumentContent
从今晚开始,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
我刚刚在构建期间开始解决这个问题。 对我maven-site-plugin
是专门定义maven-site-plugin
和maven-project-info-reports-plugin
以及pom中的版本号。
org.apache.maven.plugins maven-site-plugin 3.3 org.apache.maven.plugins maven-project-info-reports-plugin 2.7
这是由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版本:
org.apache.maven.plugins maven-project-info-reports-plugin 2.9
或者我们可以将maven-site-plugin指定为最新的3.7.1,如:
org.apache.maven.plugins maven-site-plugin 3.7.1
在pom的构建部分
我今天在我的一些构建工作中也遇到了这个错误。 上面提到的修复,为maven-site-plugin添加一个具体的依赖项确实可以解决这个问题。
然而,它突出显示的是我甚至运行mvn网站目标的事实,我甚至不知道我们正在运行,我们并不真正需要。
我的修复因此是从我的mvn arg中移除了网站目标,因为虽然它创建的网站实际上非常有用,但我从来不知道我们是在创建它,我们从未在任何地方发布过它,并且实际上每次构建都删除了它。
你真的需要添加更多的信息(我没有downwote BTW)。
IIRC; 如果您没有为绑定到生命周期阶段的插件指定版本,您将获得最新版本。
尝试:
- 升级到最新版本的maven – 3.5.4
ATOW
- 运行
mvn help:effective-pom
并检查实际正在解析的版本 – 如果你有一个来自CI的旧日志或者与之比较的地方.. - 在
pluginManagement
部分中设置maven-site-plugin
版本 - 向
maven-site-plugin
添加依赖maven-site-plugin
(见下文)
可以在doxia-site-renderer
找到org/apache/maven/doxia/siterenderer/DocumentContent
:
org.apache.maven.doxia doxia-site-renderer 1.8.1
我怀疑明确地将maven-site-plugin的版本设置为你曾经使用过的(顺便说一句)可行的。
编辑:在maven插件构建测试中追逐类似问题,在maven-invoker-plugin
使用的集成pom中明确设置maven-site-plugin
版本(3.7.1 ATOW)对我有用。
我试着按照彰化的建议,将maven-project-info-reports-plugin定义为3.0.0版,将maven-site-plugin定义为我的pom文件中的3.7.1,但发现maven网站仍然在版本3.3中无论我如何设置它,都可以使用maven-site-plugin。
我终于意识到我的问题与我们的项目结构有关。 我们有一个父pom,我们在其中定义了maven-site-plugin依赖项,然后由子pomsinheritance。 但是,构建pom文件是独立的,并没有完全定义maven-site-plugin,这允许maven自己引入3.3版本。 我将maven-site-plugin依赖项(版本3.7.1)添加到build pom文件中,以便它现在存在于build pom文件和父pom文件中,现在构建正确使用版本3.7.1,并再次通过。
maven网站插件的版本也需要在构建部分中明确设置。 这是一个例子:
org.apache.maven.plugins maven-project-info-reports-plugin 3.0.0 index licenses dependency-info org.apache.maven.plugins maven-site-plugin 3.7.1
Maven 3不再支持Doxia。
使用
org.apache.maven.plugins maven-project-info-reports-plugin 2.2
参考: https : //maven.apache.org/plugins/maven-site-plugin/maven-3.html