首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Jenkins PMD插件中添加自定义PMD规则?

如何在Jenkins PMD插件中添加自定义PMD规则?
EN

Stack Overflow用户
提问于 2015-11-17 13:50:48
回答 1查看 2.3K关注 0票数 0

我想在PMD中使用自定义规则。我在jenkins安装了PMD插件,我还创建了一个jar:

  1. 规则集文件
  2. 定制规则的java代码(自定义规则从AbstractJavaRule扩展)。

我在PMD插件的lib目录中添加了这个jar (jenkins/plugins/pmd/WEB/lib)。

我还在项目的pom.xml中添加了这一点(用于测试PMD):

代码语言:javascript
复制
        <reporting>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-pmd-plugin</artifactId>
                    <version>2.7.1</version>
                    <configuration>
                        <linkXRef>false</linkXRef>
                        <targetJdk>1.6</targetJdk>
                        <rulesets>
                                 <ruleset>/rulesets/basic.xml</ruleset>
                        </rulesets>                  
                    </configuration>
                </plugin>
            </plugins>
    </reporting> 

如何告诉使用我的新JAVA规则?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-18 19:32:37

我认为,第一步是,让定制的PMD规则在没有Jenkins的情况下工作。Jenkins将触发maven构建,这将触发PMD来创建报告文件pmd.xml,然后Jenkins插件将解析此pmd.xml文件。

  1. Maven -您已经在报告部分中添加了maven-plugin。这意味着,您需要生成站点,以获得PMD报告(运行mvn site )。还可以在构建过程中运行PMD,例如在pmd:pmd阶段运行verify。另见PMD Mojo文档
  2. 为了使您的自定义规则和自定义规则集可用,您需要将jar作为附加的依赖项添加到maven-plugin部分。 ..。org.apache.maven.plugins maven-pmd-插件2.7.1 .com.your.custom.rule自定义-规则1.0.0-快照
  3. 验证,mvn site将生成pmd报告,通常在target/pmd.xml下。
  4. 也许,Jenkins插件现在只是显示了您的规则,但是没有像代码示例和描述这样的文档。这是在PMDMessages类中实现的,并且使用了PMD的"RegisteredRuleSets“特性,这不是很好的文档,但是源代码是这里 (对于pmd4.3)。
  5. 在jar中的目录rulesets.properties中添加一个名为rulesets的属性文件。您可以将该文件放置在源树中,通常位于src/main/resources/rulesets/rulesets.properties下面。该文件需要具有以下内容 rulesets.filenames=rulesets/custom-ruleset-1.xml,规则集/自定义规则集-2.xml

它包含一个以逗号分隔的规则集文件列表。如果您在jar中添加了这个文件,那么Jenkins PMD报告应该包含您想要的信息。

请注意,已经有一个更新版本的Maven PMD插件,目前的最新版本是3.5。这个版本基于PMD 5,它引入了多种语言,以及在java情况下rulesets.properties文件更改到rulesets/java/rulesets.properties的路径。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33758639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档