sonar-runner/MRPP_SonarRunner.xml (28 lines of code) (raw):

<?xml version="1.0" encoding="UTF-8"?> <meta-runner name="Sonar Runner"> <description>Execute Sonar Runner</description> <settings> <parameters> <param name="system.sonar.executable.path" spec="text description='Path to SonarQube Runner executable. Consider using agent property here.' label='Sonar Runner executable:' validationMode='not_empty'" value="" /> <param name="system.sonar.projectKey" value="" spec="text description='The project key that is unique for each project. %teamcity.project.id% could be used here.' label='Project key:' validationMode='any'" /> <param name="system.sonar.projectName" value="" spec="text description='Name of the project that will be displayed on the web interface. %system.teamcity.projectName% could be used here.' label='Project name:' validationMode='any'" /> <param name="system.sonar.projectVersion" value="" spec="text description='The project version. %build.number% could be used here.' label='Project version:' validationMode='any'" /> <param name="system.sonar.projectDescription" value="" spec="text description='Description of the project.' label='Project description:'" /> <param name="system.sonar.language" value="" spec="text description='Set the language of source code. If a plugin allows analyzing another language, the associated source code analyser can be activated with this property.' label='Sources language:'" /> <param name="system.sonar.sources" value="" spec="text description='Comma-separated paths to directories containing sources.' label='Sources paths:'" /> <param name="system.sonar.tests" value="" spec="text description='Comma-separated paths to directories containing tests.' label='Tests paths:'" /> <param name="system.sonar.host.url" value="" spec="text description='URL to Sonar instance.' label='Sonar host:'" /> <param name="system.sonar.jdbc.url" value="" spec="text description='Database URL as specified in Sonar. Could be empty if Sonar is run on default database.' validationMode='any' label='JDBC URL:'" /> <param name="system.sonar.jdbc.password" value="" spec="text description='Database password. Could be empty if Sonar is run on default database.' validationMode='any' label='JDBC password:'" /> <param name="system.sonar.jdbc.username" value="" spec="text description='Database username. Could be empty if Sonar is run on default database.' validationMode='any' label='JDBC username:'" /> <param name="system.sonar.profile" spec="text description='Associate one of assigned quality profiles to a given project.' label='Sonar profile:'" value="" /> <param name="system.sonar.dynamicAnalysis" value="reuseReports" spec="select data_1='false' data_2='reuseReports' description='When reusing reports Sonar will parse tests and coverage reports. Set to |'false|' when only static analisys is needed.' display='normal' label='Sonar analysis mode:'" /> <param name="system.sonar.binaries" value="" spec="text description='Comma-separated paths to directories containing binaries (in case of Java: directories with class files).' display='normal' label='Additional binaries:' validationMode='any'" /> <param name="system.sonar.libraries" value="" spec="text description='Comma-separated paths to files with third-party libraries (in case of Java: JAR files). Pattern can be used.' label='Libraries:'" /> <param name="system.sonar.surefire.reportsPath" value="" spec="text description='Path to test reports directory.' label='Reports path:'"/> <param name="system.sonar.additional.parameters" spec="text description='Any additional parameters to pass to Sonar Runner' label='Additional parameters:'" value="" /> </parameters> <build-runners> <runner name="Run SonarRunner from Ant" type="Ant"> <parameters> <param name="build-file"><![CDATA[<project default="run-sonar"> <target name="run-sonar" depends="-prepare-optional-properties,-run-sonar-cli-args"/> <target name="-run-sonar-cli-args" unless="property-file-mode" depends="-check-obligatory-properties"> <exec-sonar/> </target> <target name="-prepare-optional-properties"> <propagate-if-is-set prop="sonar.host.url"/> <propagate-if-is-set prop="sonar.jdbc.url"/> <propagate-if-is-set prop="sonar.jdbc.username"/> <propagate-if-is-set prop="sonar.jdbc.password"/> <propagate-if-is-set prop="sonar.projectDescription"/> <propagate-if-is-set prop="sonar.binaries"/> <propagate-if-is-set prop="sonar.tests"/> <propagate-if-is-set prop="sonar.libraries"/> <propagate-if-is-set prop="sonar.profile"/> <propagate-if-is-set prop="sonar.dynamicAnalysis"/> <propagate-if-is-set prop="sonar.surefire.reportsPath"/> </target> <target name="-check-obligatory-properties"> <fail-if-is-not-set prop="sonar.executable.path"/> <available file="${sonar.executable.path}" property="file.available-sonar.executable" type="file"/> <fail unless="${file.available-sonar.executable}" message="Not found Sonar Runner executable in '${file.available-sonar.executable}'"/> <fail-if-is-not-set prop="sonar.projectKey"/> <fail-if-is-not-set prop="sonar.projectName"/> <fail-if-is-not-set prop="sonar.projectVersion"/> <fail-if-is-not-set prop="sonar.language"/> <fail-if-is-not-set prop="sonar.sources"/> </target> <macrodef name="exec-sonar"> <element name="exec-args" optional="true"/> <sequential> <exec executable="${sonar.executable.path}" failonerror="true"> <exec-args/> <arg value="-D"/><arg value="sonar.projectKey=${sonar.projectKey}"/> <arg value="-D"/><arg value="sonar.projectName=${sonar.projectName}"/> <arg value="-D"/><arg value="sonar.projectVersion=${sonar.projectVersion}"/> <arg value="-D"/><arg value="sonar.language=${sonar.language}"/> <arg value="-D"/><arg value="sonar.sources=${sonar.sources}"/> <arg value="${set-D-sonar.host.url}"/><arg value="${set-sonar.host.url}"/> <arg value="${set-D-sonar.jdbc.url}"/><arg value="${set-sonar.jdbc.url}"/> <arg value="${set-D-sonar.jdbc.username}"/><arg value="${set-sonar.jdbc.username}"/> <arg value="${set-D-sonar.jdbc.password}"/><arg value="${set-sonar.jdbc.password}"/> <arg value="${set-D-sonar.projectDescription}"/><arg value="${set-sonar.projectDescription}"/> <arg value="${set-D-sonar.binaries}"/><arg value="${set-sonar.binaries}"/> <arg value="${set-D-sonar.tests}"/><arg value="${set-sonar.tests}"/> <arg value="${set-D-sonar.libraries}"/><arg value="${set-sonar.libraries}"/> <arg value="${set-D-sonar.profile}"/><arg value="${set-sonar.profile}"/> <arg value="${set-D-sonar.dynamicAnalysis}"/><arg value="${set-sonar.dynamicAnalysis}"/> <arg value="${set-D-sonar.surefire.reportsPath}"/><arg value="${set-sonar.surefire.reportsPath}"/> <arg line="${sonar.additional.parameters}"/> </exec> </sequential> </macrodef> <macrodef name="is-set-and-not-empty"> <attribute name="prop"/> <sequential> <condition property="isset-@{prop}"> <and> <length string="${@{prop}}" when="greater" trim="true" length="0"/> <isset property="@{prop}"/> </and> </condition> </sequential> </macrodef> <macrodef name="fail-if-is-not-set"> <attribute name="prop"/> <sequential> <is-set-and-not-empty prop="@{prop}"/> <fail unless="${isset-@{prop}}" message="Property @{prop} should be set"/> </sequential> </macrodef> <macrodef name="propagate-if-is-set"> <attribute name="prop"/> <sequential> <is-set-and-not-empty prop="@{prop}"/> <condition property="set-@{prop}" value="@{prop}=${@{prop}}"> <istrue value="${isset-@{prop}}"/> </condition> <condition property="set-D-@{prop}" value="-D"> <istrue value="${isset-@{prop}}"/> </condition> <condition property="set-@{prop}" value="blank=blank"> <isfalse value="${isset-@{prop}}"/> </condition> <condition property="set-D-@{prop}" value="-D"> <isfalse value="${isset-@{prop}}"/> </condition> </sequential> </macrodef> </project>]]></param> <param name="build-file-path" value="build.xml" /> <param name="teamcity.coverage.emma.include.source" value="true" /> <param name="teamcity.coverage.emma.instr.parameters" value="-ix -*Test*" /> <param name="teamcity.coverage.idea.includePatterns" value="*" /> <param name="teamcity.step.mode" value="default" /> <param name="use-custom-build-file" value="true" /> </parameters> </runner> </build-runners> <requirements /> </settings> </meta-runner>