ecb*_*die 2 java pmd suppress-warnings maven-plugin maven
我有一个使用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>
Run Code Online (Sandbox Code Playgroud)
我的问题是有一些时候 - 特别是当我正在开发一个任务并且我想检查我的代码是否构建时,但是在我准备好将我的源代码提交给SCM以进行自动构建和发布之前对其他人 - 我想要抑制PMD违规导致我的构建失败.我知道一个这样的解决方案是进入代码并添加注释以抑制警告(http://pmd.sourceforge.net/suppressing.html),但我相信以这种方式编辑源代码只是为了抑制这些违规是烦人且容易出错.我能做的另一件事是编辑我的pom并注释掉PMD插件.但是,我再次发现,更改一个对我的整个应用程序至关重要的文件很烦人且容易出错.
我的团队所希望的解决方案是允许我们简单地将某种标志或参数传递到我们的mvn命令中,以快速告诉构建过程跳过PMD插件.例如,每当我们在开发阶段的某个时刻运行安装并且我们知道集成测试可能会失败时(例如,Web服务可能不活动),我们会在-Dskip.integration.tests=true期间传递标记mvn install.这是一个比编辑我们的测试文件或更改pom.xml更清晰的解决方案.我正在寻找一个类似的变量,以便我们快速跳过PMD违规.谢谢!
PS:我完成了我的作业.以下两个Stackoverflow问题不包含我想要的解决方案:
Eug*_*hov 11
只需将pom.xml中的failPmdOnViolation属性声明为true,在插件设置中指定该属性而不是硬编码常量,然后可以通过从命令行激活特殊配置文件来覆盖它.或者,你可以参考的failOnViolation插件属性默认表情像mvn -Dpmd.failOnViolation=false install
jAv*_*AvA 10
我使用以下命令的方式与我们使用skipTests=true.
mvn clean install -Dpmd.skip=true
Run Code Online (Sandbox Code Playgroud)
对于我们可以使用的 findbugs
-Dfindbugs.skip=true
Run Code Online (Sandbox Code Playgroud)