analyzeCode(PMD)

Execute PMD Static code analyzer on source code. It will help you find common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and many more.  This operation can be executed after the build or before deployment on the artifact. You can provide a rule file to control what to check or use the default rule file.  

PMD

This operation will install PMD(v6.54.0) tool on the endpoint. You can download other versions from https://sourceforge.net/projects/pmd/files/pmd/.

Target Properties 

Property Name

Property Code

Required

Description

PMD Path

FDPMD_PATH

No

Absolute path to PMD bin folder containing run.sh and pmd.bat

(Eg: /u01/pmd/pmd-bin-6.46.0/bin)

If this value is empty, then the plugin will install PMD v6.54.0 on end point

Project Properties 

Property Name

Property Code

Required

Description

PMD Rule File Names

FDPMD_RULE_FILE

No*

Rule File Name(s). Specify multiple PMD Rule Files separated commas. Relative paths are in respect to FD_TEMP_DIR but absolute path can also be set.

* FDPMD_RULE_FILE or FDPMD_INP_PMD_RULE_FILE must be configured OR FDPMD_LANG_TYPE must be configured to default a rule set file.

Language Type

FDPMD_LANG_TYPE

No

Select this to define what language PMD will use to test.(This Property is mandatory if No custom Ruleset provided. )

Inputs

Input Name

Input Code

Required

Description

PMD Rule File Names

FDPMD_INP_PMD_RULE_FILE

No*

Rule File Name(s). Specify multiple PMD Rule Files separated commas. Relative paths are in respect to FD_TEMP_DIR but absolute path can also be set.

* FDPMD_RULE_FILE or FDPMD_INP_PMD_RULE_FILE must be configured OR FDPMD_LANG_TYPE must be configured to default a rule set file.

Project Source Folder

FDPMD_INP_PROJECT_LOCATION

No

Path to the project. If a relative path is given, a path inside of the FD_TEMP_DIR will be assumed.

Additional arguments

FDPMD_INP_ADDITIONAL_ARGS

No

Additional Arguments to pass to the PMD CLI such as options, output formats, and supported languages.

https://pmd.github.io/pmd/pmd_userdocs_cli_reference.html#options

ex: --debug,--use-version <lang-version>

Outputs

Output Name

Required

Description

FDPMD_OUT_TOTAL_ISSUE_COUNT

No

Total issues count

FDPMD_OUT_PRIORITY1_TOTAL_ISSUE_COUNT

No

Total issues count for priority 1

FDPMD_OUT_PRIORITY2_TOTAL_ISSUE_COUNT

No

Total issues count for priority 2

FDPMD_OUT_PRIORITY3_TOTAL_ISSUE_COUNT

No

Total issues count for priority 3

FDPMD_OUT_PRIORITY4_TOTAL_ISSUE_COUNT

No

Total issues count for priority 4

Artifacts

This operation doesn't produce any artifacts.  

Endpoint Selection

This operation will select all available endpoints associated with the Target.

Endpoint Execution

This operation will execute on any one of the selected endpoints and will be random in the determination of which on

The following macros are not currently supported in the footer:
  • style