Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


SonarQube Perforce plugin

Build Status


This plugin implements SCM dependent features of SonarQube for Perforce projects. It's a pure Java implementation so no need to have p4 command line tool installed on the computer doing the SQ analysis.


There is no autodetection so you should activate the provider using -Dsonar.scm.provider=perforce.

Mandatory properties:

Key Description
sonar.perforce.port The host and port number of the Perforce service with which to communicate. Format is host:port.
sonar.perforce.username Username to be used for Perforce authentication. Mandatory.
sonar.perforce.password.secured Password to be used for Perforce authentication. If not set it will try to reuse existing ticket for provided user.
sonar.perforce.clientName Name of the client/workspace the project belongs to.

You can also configure some optional properties:

Key Description Default value
sonar.perforce.useSsl Use SSL protocol (p4javassl://) to connect to server false
sonar.perforce.charset Character set used for translation of unicode files (P4CHARSET)
sonar.perforce.sockSoTimeout Perforce socket read timeout for communicating with the Perforce service (milliseconds) 30000 (30s)
sonar.perforce.clientImpersonatedHostname Name of the host computer to impersonate (P4HOST)

Known Limitations

  • No auto-detection since nothing in workspace seems to show this is under Perforce control management (like .git folder for Git workspace).
  • Blame is not executed in parallel since we are not confident in the thread safety of p4java library.

Developper informations

The plugin use the p4java pure Java implementation of Perforce client: