PMD
和SonarLint一樣,也是作源碼檢測,但著重在可以自訂規則,(官網也提供了第3方提供的規則集),算是比較老牌的源碼檢測工具。 我的設定一般如下
<pom>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.21.2</version>
<configuration>
<failOnViolation>false</failOnViolation>
<linkXref>true</linkXref>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<minimumTokens>100</minimumTokens><!--重覆的token超出這個數量視為拷貝-貼上的程式碼-->
<targetJdk>${maven.compiler.target}</targetJdk>
</configuration>
<reportSets><!--產製報表時的相關設定-->
<reportSet>
<reports>
<report>pmd</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
</pom>
PMD除了源碼檢測外(pmd:pmd
Goal),還可以幫忙找出程式碼中拷貝貼上的部份(pmd:cpd
),這兩個功能被整合到一個Goal pmd:check
(同時進行源碼檢測與找出重覆的部份)。
但是因為本身沒有提供報表,所以必須都做一點設定,以便整合進專案報表(site report,後面章節會提到)中。