Pmd

API 文件Pmd

在 Java 原始碼檔案上執行一組靜態程式碼分析規則,並產生找到問題的報告。

屬性

屬性描述
classpath

用於分析的類別的編譯類別路徑。此類別路徑上的類別在分析期間使用,但本身不進行分析。這僅在 PMD 5.2.1 或更高版本中得到良好支持。

consoleOutput

是否將 PMD 結果寫入 System.out

excludes

排除模式的集合。

ignoreFailures
孵化中

指定當此任務執行的驗證失敗時,建置是否應該中斷。

includes

包含模式的集合。

incrementalAnalysis

控制是否使用增量分析。這僅在 PMD 6.0.0 或更高版本中得到支持。有關更多詳細信息,請參閱 https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_userdocs_incremental_analysis.html

javaLauncher
孵化中

用於啟動 worker process 的 Java 啟動器

maxFailures

在停止建置之前允許的最大失敗次數。預設值為 0,這將在任何失敗時停止建置。值 0 及以上有效。如果

maxHeapSize
孵化中

worker process 的最大堆積大小。如果未指定,Gradle 將提供最大堆積大小。支持類似命令行選項 -Xmx 的單位,例如 "1g"

minHeapSize
孵化中

worker process 的最小堆積大小。如果未指定,則不設定最小堆積大小。支持類似命令行選項 -Xms 的單位,例如 "1g"

pmdClasspath

包含要使用的 PMD 函式庫的類別路徑。

reports

此任務要產生的報告。

ruleSetConfig

要使用的自訂規則集(如果有的話)。取代 ruleSetFiles,但目前尚不支援多個規則集。有關如何編寫規則集,請參閱官方文件

ruleSetFiles

要使用的自訂規則集檔案。有關如何編寫規則集檔案,請參閱官方文件。如果您只想使用自訂規則集,則必須清除 ruleSets

ruleSets

要使用的內建規則集。請參閱內建規則集的官方列表

rulesMinimumPriority

指定規則優先級閾值。

source

應用包含和排除模式後,此任務的原始碼。忽略不存在的原始碼檔案。

targetJdk

要與 PMD 一起使用的目標 JDK。

threads

指定 PMD 使用的執行緒數。

方法

方法描述
exclude(excludeSpec)

新增排除規範。可以多次調用此方法以附加新的規範。給定的 closure 會傳遞一個 FileTreeElement 作為其參數。closure 應傳回 true 或 false。範例

exclude(excludes)

新增 ANT 風格的排除模式。可以多次調用此方法以附加新的模式,並且可以在單次調用中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案不得與任何排除模式匹配才能進行處理。

exclude(excludes)

新增 ANT 風格的排除模式。可以多次調用此方法以附加新的模式,並且可以在單次調用中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案不得與任何排除模式匹配才能進行處理。

exclude(excludeSpec)

新增排除規範。可以多次調用此方法以附加新的規範。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案不得與任何排除模式匹配才能進行處理。

include(includeSpec)

新增包含規範。可以多次調用此方法以附加新的規範。給定的 closure 會傳遞一個 FileTreeElement 作為其參數。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須與至少一個包含模式或規範匹配才能被包含。

include(includes)

新增 ANT 風格的包含模式。可以多次調用此方法以附加新的模式,並且可以在單次調用中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須與至少一個包含模式匹配才能進行處理。

include(includes)

新增 ANT 風格的包含模式。可以多次調用此方法以附加新的模式,並且可以在單次調用中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須與至少一個包含模式匹配才能進行處理。

include(includeSpec)

新增包含規範。可以多次調用此方法以附加新的規範。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須與至少一個包含模式或規範匹配才能被包含。

reports(configureAction)

配置由此任務產生的報告。

source(sources)

向此任務新增一些原始碼。給定的原始碼物件將按照 Project.files(java.lang.Object[]) 進行評估。

Script 區塊

區塊描述
reports

配置由此任務產生的報告。

屬性詳情

FileCollection classpath

用於分析的類別的編譯類別路徑。此類別路徑上的類別在分析期間使用,但本身不進行分析。這僅在 PMD 5.2.1 或更高版本中得到良好支持。

預設與 pmd 外掛程式
sourceSet.outputsourceSet.compileClasspath

boolean consoleOutput

是否將 PMD 結果寫入 System.out

預設與 pmd 外掛程式
project.pmd.consoleOutput

Set<String> excludes

排除模式的集合。

boolean ignoreFailures

注意:此屬性正在孵化中,並且可能在 Gradle 的未來版本中變更。

指定當此任務執行的驗證失敗時,建置是否應該中斷。

Set<String> includes

包含模式的集合。

Property<Boolean> incrementalAnalysis

控制是否使用增量分析。這僅在 PMD 6.0.0 或更高版本中得到支持。有關更多詳細信息,請參閱 https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_userdocs_incremental_analysis.html

預設與 pmd 外掛程式
false

Property<JavaLauncher> javaLauncher

注意:此屬性正在孵化中,並且可能在 Gradle 的未來版本中變更。

用於啟動 worker process 的 Java 啟動器

Property<Integer> maxFailures

在停止建置之前允許的最大失敗次數。預設值為 0,這將在任何失敗時停止建置。值 0 及以上有效。如果

ignoreFailures

已設定,則忽略此項,且建置將繼續(允許無限次失敗)。

預設與 pmd 外掛程式
project.pmd.maxFailures

Property<String> maxHeapSize

注意:此屬性正在孵化中,並且可能在 Gradle 的未來版本中變更。

worker process 的最大堆積大小。如果未指定,Gradle 將提供最大堆積大小。支持類似命令行選項 -Xmx 的單位,例如 "1g"

Property<String> minHeapSize

注意:此屬性正在孵化中,並且可能在 Gradle 的未來版本中變更。

worker process 的最小堆積大小。如果未指定,則不設定最小堆積大小。支持類似命令行選項 -Xms 的單位,例如 "1g"

FileCollection pmdClasspath

包含要使用的 PMD 函式庫的類別路徑。

預設與 pmd 外掛程式
project.configurations.pmd

PmdReports reports (唯讀)

此任務要產生的報告。

TextResource ruleSetConfig

要使用的自訂規則集(如果有的話)。取代 ruleSetFiles,但目前尚不支援多個規則集。有關如何編寫規則集,請參閱官方文件

    ruleSetConfig = resources.text.fromFile(resources.file("config/pmd/myRuleSets.xml"))
預設與 pmd 外掛程式
project.pmd.ruleSetConfig

FileCollection ruleSetFiles

要使用的自訂規則集檔案。有關如何編寫規則集檔案,請參閱官方文件。如果您只想使用自訂規則集,則必須清除 ruleSets

    ruleSetFiles = files("config/pmd/myRuleSet.xml")
預設與 pmd 外掛程式
project.pmd.ruleSetFiles

List<String> ruleSets

要使用的內建規則集。請參閱內建規則集的官方列表

    ruleSets = ["basic", "braces"]
預設與 pmd 外掛程式
project.pmd.ruleSets

Property<Integer> rulesMinimumPriority

指定規則優先級閾值。

預設與 pmd 外掛程式
project.pmd.rulesMinimumPriority

FileTree source (唯讀)

應用包含和排除模式後,此任務的原始碼。忽略不存在的原始碼檔案。

原始碼的 PathSensitivity 配置為 PathSensitivity.ABSOLUTE。如果您的原始碼不太嚴格,請在子類別中覆寫此方法以相應地變更它。

預設與 pmd 外掛程式
sourceSet.allJava

TargetJdk targetJdk

要與 PMD 一起使用的目標 JDK。

預設與 pmd 外掛程式
project.pmd.targetJdk

Property<Integer> threads

指定 PMD 使用的執行緒數。

預設與 pmd 外掛程式
1

方法詳情

SourceTask exclude(Closure excludeSpec)

新增排除規範。可以多次調用此方法以附加新的規範。給定的 closure 會傳遞一個 FileTreeElement 作為其參數。closure 應傳回 true 或 false。範例

copySpec {
  from 'source'
  into 'destination'
  //an example of excluding files from certain configuration:
  exclude { it.file in configurations.someConf.files }
}

如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案不得與任何排除模式匹配才能進行處理。

SourceTask exclude(Iterable<String> excludes)

新增 ANT 風格的排除模式。可以多次調用此方法以附加新的模式,並且可以在單次調用中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案不得與任何排除模式匹配才能進行處理。

SourceTask exclude(String... excludes)

新增 ANT 風格的排除模式。可以多次調用此方法以附加新的模式,並且可以在單次調用中指定多個模式。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案不得與任何排除模式匹配才能進行處理。

SourceTask exclude(Spec<FileTreeElement> excludeSpec)

新增排除規範。可以多次調用此方法以附加新的規範。如果未提供排除項,則不會排除任何檔案。如果提供了排除項,則檔案不得與任何排除模式匹配才能進行處理。

SourceTask include(Closure includeSpec)

新增包含規範。可以多次調用此方法以附加新的規範。給定的 closure 會傳遞一個 FileTreeElement 作為其參數。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須與至少一個包含模式或規範匹配才能被包含。

SourceTask include(Iterable<String> includes)

新增 ANT 風格的包含模式。可以多次調用此方法以附加新的模式,並且可以在單次調用中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須與至少一個包含模式匹配才能進行處理。

SourceTask include(String... includes)

新增 ANT 風格的包含模式。可以多次調用此方法以附加新的模式,並且可以在單次調用中指定多個模式。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須與至少一個包含模式匹配才能進行處理。

SourceTask include(Spec<FileTreeElement> includeSpec)

新增包含規範。可以多次調用此方法以附加新的規範。如果未提供包含項,則將包含此容器中的所有檔案。如果提供了包含項,則檔案必須與至少一個包含模式或規範匹配才能被包含。

PmdReports reports(Action<? super PmdReports> configureAction)

配置由此任務產生的報告。

SourceTask source(Object... sources)

向此任務新增一些原始碼。給定的原始碼物件將按照 Project.files(java.lang.Object[]) 進行評估。

Script 區塊詳情

reports { }

配置由此任務產生的報告。

委派至
PmdReportsreports