java - 如何在 Maven 安装期间抑制 PMD 警告

标签 java maven maven-plugin pmd suppress-warnings

我有一个使用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 mvn install 期间的 =true 标志。这是一个比编辑测试文件或更改 pom.xml 更干净的解决方案。我正在寻找一个类似的变量来允许我们快速跳过 PMD 违规。谢谢!

PS:我做了作业。以下两个 Stackoverflow 问题没有包含我想要的解决方案:

最佳答案

我使用以下命令的方式与我们使用 skipTests=true 的方式相同。

mvn clean install -Dpmd.skip=true 

对于 findbug,我们也可以使用

-Dfindbugs.skip=true

关于java - 如何在 Maven 安装期间抑制 PMD 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13072280/

相关文章:

java - 更新 ADT 后无法为按钮设置 onclicklistener

java - 我们可以调试部署在jboss应用服务器中的java文件吗?

java - 在哪里可以找到一些 Maven 生命周期文档

java - 将提供的依赖项中的特定包添加到 jar 中

maven-plugin - 开发Maven 3.0插件

java - Guava 破坏了 maven-plugin

java - Mule ESB - 集成测试 - REST 端点 - 使用 MuleClient

java - 如何使用Tomcat调试JSP页面?

java - 使用 Maven 原型(prototype)自动生成包(文件夹)和类

java - 如何在使用运行配置正确配置的 Eclipse 中创建 Spring Boot Starter 项目?