我正在运行Maven应用程序“ DemoApp”,该应用程序会生成Checkstyle静态代码分析报告。在eclipse上运行时,它可以正常工作,但是在jenkins上运行时,它会出现以下错误
java.lang.NoClassDefFoundError: org/apache/maven/doxia/siterenderer/DocumentContent
Caused by: java.lang.ClassNotFoundException: org.apache.maven.doxia.siterenderer.DocumentContent
以及以下异常:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<configuration>
<configLocation>src/main/resources/google_checks.xml</configLocation>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>false</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</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>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<reportSets>
<reportSet>
<reports>
<report>checkstyle</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
我在pom.xml中添加了以下插件
nativescript angular
答案 0 :(得分:1)
我无法确定这是否能解决您当前的问题,但总的来说:<pluginManagement>
中的声明实际上并未在构建过程中设置任何内容,而是作为(子)项目共同声明的集中场所:
[...]这只会配置在子级或当前POM中的plugins元素中实际引用的插件。
在错误消息maven-site-plugin:3.3
和声明:<version>3.7.1
中查看不同的版本。
要将此类插件声明添加到构建过程中,您必须在以下位置另外声明/引用它:
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
</plugin>
</plugins>
...
</build>
如果要向控制台报告或无法通过构建,则必须在
checkstyle::check
元素上添加<build>
的执行,并配置所需的任何选项。