我有一个使用Maven构建的Java项目,因此我的构建过程是在项目的pom.xml文件中定义的。我的开发团队使用各种插件来检查我们源代码的质量;其中一个插件使用 PMD 检查代码。该插件确保每次我们在项目上执行 mvn install
时都会运行 PMD,如果存在违规,它将导致构建失败。这是我们的 pom.xml 中的插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<targetJdk>1.6</targetJdk>
<linkXref>false</linkXref>
<failOnViolation>true</failOnViolation>
<failurePriority>1</failurePriority>
<rulesets>
<ruleset>config/pmd-rulesets.xml</ruleset>
</rulesets>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
我的问题是,有时 - 特别是当我正在开发一项任务时,我想检查我的代码是否构建,但在我准备好将源代码提交到 SCM 进行自动构建之前构建并发布给其他人——当我想要抑制 PMD 违规而导致构建失败时。我知道这样的解决方案之一是进入代码并添加注释来抑制警告( http://pmd.sourceforge.net/suppressing.html ),但我相信以这种方式编辑源代码只是为了抑制这些违规行为是令人烦恼且容易出错的。我可以做的另一件事是编辑我的 pom 并注释掉 PMD 插件。然而,我再次发现更改对我的整个应用程序至关重要的文件是令人烦恼且容易出错的。
我的团队想要的解决方案是允许我们简单地将某种标志或参数传递到我们的 mvn
命令中,以快速告诉构建过程跳过 PMD 插件。例如,每当我们在开发阶段运行安装并且我们知道集成测试可能会失败(例如,Web 服务可能不活动)时,我们都会通过 -Dskip.integration.tests
标志。这是一个比编辑测试文件或更改 pom.xml 更干净的解决方案。我正在寻找一个类似的变量来允许我们快速跳过 PMD 违规。谢谢!mvn install
期间的 =true
PS:我做了作业。以下两个 Stackoverflow 问题没有包含我想要的解决方案:
最佳答案
我使用以下命令的方式与我们使用 skipTests=true
的方式相同。
mvn clean install -Dpmd.skip=true
对于 findbug,我们也可以使用
-Dfindbugs.skip=true
关于java - 如何在 Maven 安装期间抑制 PMD 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13072280/