我有一个Java项目,使用Maven构建,因此我的构建过程在项目的pom.xml文件中定义。我的开发团队使用各种插件来检查我们的源代码质量;其中一个插件使用PMD来检查代码。该插件确保每次我们在项目上执行
我的问题是,有时候 -- 特别是当我正在开发任务并想要检查代码是否构建成功,但在准备好将源代码提交到 SCM 进行自动构建和发布给其他人之前 -- 我会想要抑制 PMD 违规从而避免构建失败。我知道一种解决方案是进入代码并添加注释以抑制警告(http://pmd.sourceforge.net/suppressing.html),但我认为以这种方式编辑源代码只是为了抑制这些违规是很烦人且容易出错的。另一件事情是编辑我的 pom 并注释掉 PMD 插件。然而,再次更改对于整个应用程序至关重要的文件是很烦人且容易出错的。
我团队需要的解决方案是通过在
PS:我已经做了功课。以下两个Stackoverflow问题没有包含我所需的解决方案:
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服务可能不活动),我们会在mvn install
期间传递-Dskip.integration.tests=true
标志。这比编辑测试文件或更改pom.xml要干净得多。我正在寻找类似的变量,以便能够快速跳过PMD违规。谢谢!PS:我已经做了功课。以下两个Stackoverflow问题没有包含我所需的解决方案: