Skip to content

Command-line interface for the Z PL/SQL Analyzer.

License

Notifications You must be signed in to change notification settings

felipebz/zpa-cli

Repository files navigation

ZPA CLI

Build

This is a command-line interface to the Z PL/SQL Analyzer. It is a code analyzer for Oracle PL/SQL and Oracle Forms projects.

Downloading

Official releases are available for download on the "Releases" page.

Requirements

  • Java 17 or newer

Usage

Currently, the zpa-cli supports these options:

  • --sources: [required] Path to the folder containing the files to be analyzed.
  • --forms-metadata: Path to the Oracle Forms metadata file.
  • --extensions: File extensions to analyze, separated by comma. The default value is sql,pkg,pks,pkb,fun,pcd,tgg,prc,tpb,trg,typ,tab,tps.
  • --output-format: Format of the output. The default value is console.
  • --output-file: Path to the output file.
  • --config: Path to the configuration file. The file format must comply with the provided JSON schema. You can refer to the example zpa-config-example.json for guidance. If the configuration file is not provided, only the rules marked as "activated by default" will be executed.

Output formats:

  • console: writes the analysis result on the standard output
  • sq-generic-issue-import: generates a XML file using the "Generic Issue Data" format that can be used in SonarCloud or in a SonarQube server (as an alternative to the dedicated Z PL/SQL Analyzer Plugin).

Example

Running an analysis:

./zpa-cli/bin/zpa-cli --sources . --output-file zpa-issues.json --output-format sq-generic-issue-import

Then you can send the results to a SonarCloud or SonarQube server setting the sonar.externalIssuesReportPaths property:

sonar-scanner 
  -Dsonar.organization=$SONARCLOUD_ORGANIZATION \
  -Dsonar.projectKey=myproject \
  -Dsonar.sources=. \
  -Dsonar.host.url=https://sonarcloud.io \
  -Dsonar.externalIssuesReportPaths=zpa-issues.json

Check the demo project on SonarCloud!

Contributing

Please read our contributing guidelines to see how you can contribute to this project.