【发布时间】:2019-04-12 16:07:56
【问题描述】:
我在尝试将 checkstyle 添加到我的项目时遇到 sourceDirectory 参数已弃用错误。
错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.0.0:checkstyle (default-cli) on project my-app: An error has occurred in Checkstyle report generation.: You are using 'sourceDirectory' which has been removed from the maven-checkstyle-plugin. Please use 'sourceDirectories' and refer to the >>Major Version Upgrade to version 3.0.0<< on the plugin site. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.0.0:checkstyle (default-cli) on project my-app: An error has occurred in Checkstyle report generation.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
我有一个 spring-boot maven 项目,当前未配置 checkstyle。但是当我检查了相同的有效 pom 时,我可以看到 checkstyle 的以下配置。
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.14</version>
<configuration>
<outputFileFormat>xml</outputFileFormat>
<consoleOutput>false</consoleOutput>
<enableRSS>false</enableRSS>
<linkXRef>false</linkXRef>
<configLocation>http://ldisonarci.wdf.sap.corp:8080/sonar/profiles/export?format=checkstyle&language=java</configLocation>
<sourceDirectory>/All-Data/proj/test_proj/src</sourceDirectory>
<encoding>UTF-8</encoding>
<failOnViolation>true</failOnViolation>
<violationSeverity>error</violationSeverity>
</configuration>
</plugin>
现在我想将 Checkstyle maven 插件 3.0.0 添加到项目中。所以我在 pom.xml 中的插件管理中添加了 checkstyle 3.0.0 版,如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<configLocation>google_checks.xml</configLocation>
<sourceDirectories>
<sourceDirectory>${project.basedir}/src/</sourceDirectory>
</sourceDirectories>
</configuration>
</plugin>
</plugins>
现在新的有效 pom 包含以下内容
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<configLocation>google_checks.xml</configLocation>
<sourceDirectories>
<sourceDirectory>/All-Data/proj/test_proj/src/</sourceDirectory>
</sourceDirectories>
<outputFileFormat>xml</outputFileFormat>
<consoleOutput>false</consoleOutput>
<enableRSS>false</enableRSS>
<linkXRef>false</linkXRef>
<sourceDirectory>/All-Data/proj/test_proj/src</sourceDirectory>
<encoding>UTF-8</encoding>
<failOnViolation>true</failOnViolation>
<violationSeverity>error</violationSeverity>
</configuration>
</plugin>
如果你看一下新生成的有效pom.xml,它有sourceDirectory,我没有配置。因此,当我运行 mvn checkstyle:checkstyle 时,它会因上述错误而失败。
如何摆脱出现在有效 pom.xml 中的sourceDirectory。
我尝试使用 checkstyle 创建一个新的虚拟项目,但没有这个问题。请帮忙。
【问题讨论】:
-
如果我在默认配置下使用
checkstyle-maven-plugin@2.9.1,一切正常。
标签: java xml maven checkstyle maven-checkstyle-plugin