[英]How to add a custom PMD rule in Jenkins PMD plugin?
我想在PMD中使用自定義規則。 我在jenkins中安裝了PMD插件,還創建了一個jar:
我將此罐子添加到了PMD插件的lib目錄(jenkins / plugins / pmd / WEB-INF / lib)中。
我還將其添加到項目的pom.xml中(以測試PMD):
<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>
如何告訴詹金斯PMD插件使用我的新JAVA規則?
我認為,第一步是在沒有Jenkins的情況下使自定義PMD規則生效。 Jenkins將觸發Maven構建,這將觸發PMD創建報告文件pmd.xml
,然后Jenkins PMD插件將解析此pmd.xml
文件。
Maven-您已在報告部分中添加了maven-pmd-plugin。 這意味着,您需要生成站點以獲取PMD報告(運行mvn site
。也可以在構建過程中運行PMD,例如,在階段verify
運行pmd:pmd
。另請參見PMD Mojo文檔 。
為了使您的自定義規則和自定義規則集可用,您需要將jar作為附加依賴項添加到maven-pmd-plugin部分,例如
... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>2.7.1</version> ... <dependencies> <dependency> <groupId>com.your.custom.rule</groupId> <artifactId>custom-rule</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies> </plugin>
驗證mvn site
通常在target/pmd.xml
下會生成pmd報告。
Jenkins PMD插件現在可能只是顯示您的規則,而沒有代碼示例和說明之類的文檔。 這是在PMDMessages類中實現的,並使用了PMD的“ RegisteredRuleSets”功能,雖然沒有很好的文檔說明,但是源代碼在這里 (對於PMD 4.3)。
在jar的目錄rulesets
集中添加一個名為rulesets.properties
的屬性文件。 您通常將此文件放置在源樹中的src/main/resources/rulesets/rulesets.properties
。 該文件需要具有以下內容
rulesets.filenames=rulesets/custom-ruleset-1.xml,rulesets/custom-ruleset-2.xml
它包含逗號分隔的規則集文件列表。 如果將此文件添加到jar中,則Jenkins PMD報告應包含所需的信息。
請注意,已經有較新版本的Maven PMD插件可用,當前最新版本為3.5。 該版本基於PMD 5,該版本引入了多種語言,如果使用Java,則rulesets.properties文件的路徑將更改為rulesets/java/rulesets.properties
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.