我们有一个maven项目,其中包括checkstyle以及pmd作为分析器。
问题是,checkstyle有时会使用我配置和修改的google_checks.xml文件,有时会使用普通的goole_checks.xml文件并引发checkstyle错误,该错误对于它使用的文件有效,但我不知道它从哪里获取该文件从。我的pom看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<build>
<pluginManagement>
<plugins>
<!-- checkstyle -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- google checks -->
<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>google_checks.xml</configLocation>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failOnViolation>true</failOnViolation>
<violationSeverity>warning</violationSeverity>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.20</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.12.0</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<configuration>
<failOnViolation>true</failOnViolation>
<printFailingErrors>true</printFailingErrors>
</configuration>
<goals>
<goal>check</goal>
<goal>cpd-check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<!-- PMD -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.12.0</version>
<configuration>
<failOnViolation>true</failOnViolation>
</configuration>
</plugin>
<!-- JXR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</reporting>
</project>
我从pom中删除了一些我认为不相关的部分。 完整的项目位于此处:https://code.toold.xyz/Hochschule/WebAnServer/src/branch/mavenSetup/CueBox_source
第一次执行mvn clean时,它可以可靠地工作,但是当我执行mvn编译,然后不做任何更改时,再次执行mvn编译。有时会引发很多关于缩进的错误...我已从google_checks.xml中删除了该错误。它会在目标文件夹中创建一个checkstyle-checker.xml,有时它包含我的google_checks.xml文件中没有的内容,看起来更像原始的google_checks.xml文件。
您是否知道导致此问题的原因?
答案 0 :(得分:0)
问题似乎出在google_checks.xml的名称上,我对其进行了重命名并对其进行了测试,现在它可以一直正常工作。看来maven并不是将google_checks.xml解释为文件名而是引用文件,然后将其下载或从某处提取
如果有人确切知道这是否发生...请解释,我会接受你的回答:)