id "de.undercouch.download" version "5.0.1" apply false | id "de.undercouch.download" version "5.0.1" apply false | ||||
id 'io.spring.dependency-management' version '1.0.11.RELEASE' | id 'io.spring.dependency-management' version '1.0.11.RELEASE' | ||||
id "org.cyclonedx.bom" version "1.6.1" apply false | id "org.cyclonedx.bom" version "1.6.1" apply false | ||||
id 'org.sonarqube' version '3.4.0.2513' | |||||
id 'org.sonarqube' version '3.5.0.2730' | |||||
} | } | ||||
if (!JavaVersion.current().java11Compatible) { | if (!JavaVersion.current().java11Compatible) { | ||||
} | } | ||||
apply plugin: 'org.sonarqube' | apply plugin: 'org.sonarqube' | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', projectTitle | property 'sonar.projectName', projectTitle | ||||
property 'sonar.projectVersion', "${versionInSources}-SNAPSHOT" | property 'sonar.projectVersion', "${versionInSources}-SNAPSHOT" | ||||
protobufVersion = '3.21.7' | protobufVersion = '3.21.7' | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.moduleKey', project.group + ':' + project.name | property 'sonar.moduleKey', project.group + ':' + project.name | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
skipProject = true | skipProject = true | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Server :: Parent" | property 'sonar.projectName', "${projectTitle} :: Server :: Parent" | ||||
} | } |
description = 'Code relating to the Compute Engine shared between the Compute Engine and the Web Server' | description = 'Code relating to the Compute Engine shared between the Compute Engine and the Web Server' | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Compute Engine :: Common" | property 'sonar.projectName', "${projectTitle} :: Compute Engine :: Common" | ||||
} | } |
description = 'Code of the Compute Engine task processing project analysis reports' | description = 'Code of the Compute Engine task processing project analysis reports' | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Compute Engine :: Task :: Project Analysis" | property 'sonar.projectName', "${projectTitle} :: Compute Engine :: Task :: Project Analysis" | ||||
} | } |
description = 'Definition of a Compute Engine task and utility "framework" and classes to code one' | description = 'Definition of a Compute Engine task and utility "framework" and classes to code one' | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Compute Engine :: Task" | property 'sonar.projectName', "${projectTitle} :: Compute Engine :: Task" | ||||
} | } |
description = 'Compute Engine JVM application' | description = 'Compute Engine JVM application' | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Compute Engine" | property 'sonar.projectName', "${projectTitle} :: Compute Engine" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Database Core" | property 'sonar.projectName', "${projectTitle} :: Database Core" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: DAO" | property 'sonar.projectName', "${projectTitle} :: DAO" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Database Migration" | property 'sonar.projectName', "${projectTitle} :: Database Migration" | ||||
} | } |
* This module is building the zip file containing the static web site | * This module is building the zip file containing the static web site | ||||
*/ | */ | ||||
sonarqube { | |||||
sonar { | |||||
skipProject = true | skipProject = true | ||||
} | } | ||||
| - gradle | | - gradle | ||||
| - sonar | | - sonar | ||||
| script: | | script: | ||||
| - bash ./gradlew sonarqube | |||||
| - bash ./gradlew sonar | |||||
| caches: | | caches: | ||||
| sonar: ~/.sonar | | sonar: ~/.sonar | ||||
| | | | ||||
## Authenticating with Bitbucket Cloud | ## Authenticating with Bitbucket Cloud | ||||
See [Authenticating with Bitbucket Cloud](/instance-administration/authentication/bitbucket-cloud/) | |||||
See [Authenticating with Bitbucket Cloud](/instance-administration/authentication/bitbucket-cloud/) |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any | | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any | ||||
| SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | | SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | ||||
| SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} | | SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} | ||||
| run: ./gradlew build sonarqube --info | |||||
| run: ./gradlew build sonar --info | |||||
| ``` | | ``` | ||||
|Dismiss: Used in tests|Resolve (Won't Fix)| | |Dismiss: Used in tests|Resolve (Won't Fix)| | ||||
|Dismiss: Won't fix|Resolve (Won't Fix)| | |Dismiss: Won't fix|Resolve (Won't Fix)| | ||||
| See the [online documentation](https://redirect.sonarsource.com/doc/download-scanner-gradle.html) to get more details on the latest version of the scanner and how to download it. | | See the [online documentation](https://redirect.sonarsource.com/doc/download-scanner-gradle.html) to get more details on the latest version of the scanner and how to download it. | ||||
<!-- /embedded --> | <!-- /embedded --> | ||||
The SonarScanner for Gradle provides an easy way to start SonarQube analysis of a Gradle project. | |||||
The SonarScanner for Gradle provides an easy way to start the scan of a Gradle project. | |||||
The ability to execute the SonarQube analysis via a regular Gradle task makes it available anywhere Gradle is available (developer build, CI server, etc.), without the need to manually download, setup, and maintain a SonarQube Runner installation. The Gradle build already has much of the information needed for SonarQube to successfully analyze a project. By preconfiguring the analysis based on that information, the need for manual configuration is reduced significantly. | |||||
The ability to execute the SonarScanner analysis via a regular Gradle task makes it available anywhere Gradle is available (developer build, CI server, etc.), without the need to manually download, setup, and maintain a SonarScanner CLI installation. The Gradle build already has much of the information needed for the SonarScanner to successfully analyze a project. By preconfiguring the analysis based on that information, the need for manual configuration is reduced significantly. | |||||
## Prerequisites | ## Prerequisites | ||||
* Gradle versions 5+ | * Gradle versions 5+ | ||||
Assuming a local SonarQube server with out-of-the-box settings is up and running, no further configuration is required. | Assuming a local SonarQube server with out-of-the-box settings is up and running, no further configuration is required. | ||||
You need to pass an [authentication token](/user-guide/user-token/) using the `sonar.login` property in your command line or you configure it as part of your `gradle.properties` file. Execute `gradle sonarqube -Dsonar.login=yourAuthenticationToken` and wait until the build has completed, then open the web page indicated at the bottom of the console output. You should now be able to browse the analysis results. | |||||
You need to pass an [authentication token](/user-guide/user-token/) using the `sonar.login` property in your command line or you configure it as part of your `gradle.properties` file. Execute `gradle sonar -Dsonar.login=yourAuthenticationToken` and wait until the build has completed, then open the web page indicated at the bottom of the console output. You should now be able to browse the analysis results. | |||||
## Analyzing Multi-Project Builds | ## Analyzing Multi-Project Builds | ||||
To analyze a project hierarchy, apply the SonarQube plugin to the root project of the hierarchy. Typically (but not necessarily) this will be the root project of the Gradle build. Information pertaining to the analysis as a whole has to be configured in the sonarqube block of this project. Any properties set on the command line also apply to this project. | |||||
To analyze a project hierarchy, apply the SonarQube plugin to the root project of the hierarchy. Typically (but not necessarily) this will be the root project of the Gradle build. Information pertaining to the analysis as a whole has to be configured in the sonar block of this project. Any properties set on the command line also apply to this project. | |||||
``` | ``` | ||||
// build.gradle | // build.gradle | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property "sonar.sourceEncoding", "UTF-8" | property "sonar.sourceEncoding", "UTF-8" | ||||
} | } | ||||
``` | ``` | ||||
// build.gradle | // build.gradle | ||||
subprojects { | subprojects { | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property "sonar.sources", "src" | property "sonar.sources", "src" | ||||
} | } | ||||
} | } | ||||
``` | ``` | ||||
Project-specific information is configured in the `sonarqube` block of the corresponding project. | |||||
Project-specific information is configured in the `sonar` block of the corresponding project. | |||||
``` | ``` | ||||
// build.gradle | // build.gradle | ||||
project(":project1") { | project(":project1") { | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property "sonar.branch", "Foo" | property "sonar.branch", "Foo" | ||||
} | } | ||||
}} | }} | ||||
``` | ``` | ||||
To skip SonarQube analysis for a particular subproject, set sonarqube.skipProject to true. | |||||
To skip SonarScanner analysis for a particular subproject, set sonar.skipProject to true. | |||||
``` | ``` | ||||
// build.gradle | // build.gradle | ||||
project(":project2") { | project(":project2") { | ||||
sonarqube { | |||||
sonar { | |||||
skipProject = true | skipProject = true | ||||
} | } | ||||
} | } | ||||
``` | ``` | ||||
## Task dependencies | ## Task dependencies | ||||
All tasks that produce output that should be included in the SonarQube analysis need to be executed before the `sonarqube` task runs. Typically, these are compile tasks, test tasks, and [code coverage](/analysis/coverage/) tasks. | |||||
All tasks that produce output that should be included in the SonarScanner analysis need to be executed before the `sonar` task runs. Typically, these are compile tasks, test tasks, and [code coverage](/analysis/coverage/) tasks. | |||||
Starting with v3.0 of the SonarScanner for Gradle, task dependencies are no longer added automatically. Instead, the SonarScanner plugin enforces the correct order of tasks with `mustRunAfter`. You need to be either manually run the tasks that produce output before `sonarqube`, or you can add a dependency to the build script: | Starting with v3.0 of the SonarScanner for Gradle, task dependencies are no longer added automatically. Instead, the SonarScanner plugin enforces the correct order of tasks with `mustRunAfter`. You need to be either manually run the tasks that produce output before `sonarqube`, or you can add a dependency to the build script: | ||||
``` | ``` | ||||
// build.gradle | // build.gradle | ||||
project.tasks["sonarqube"].dependsOn "anotherTask" | |||||
project.tasks["sonar"].dependsOn "anotherTask" | |||||
``` | ``` | ||||
## Sample project | ## Sample project | ||||
## Analysis property defaults | ## Analysis property defaults | ||||
The SonarScanner for Gradle uses information contained in Gradle's object model to provide smart defaults for most of the standard [analysis parameters](/analysis/analysis-parameters/), as listed below. | The SonarScanner for Gradle uses information contained in Gradle's object model to provide smart defaults for most of the standard [analysis parameters](/analysis/analysis-parameters/), as listed below. | ||||
Gradle defaults for standard SonarQube properties: | |||||
Gradle defaults for standard Sonar properties: | |||||
Property|Gradle default | Property|Gradle default | ||||
---|--- | ---|--- | ||||
``` | ``` | ||||
build.gradle | build.gradle | ||||
sonarqube { | |||||
sonar { | |||||
androidVariant 'fullDebug' | androidVariant 'fullDebug' | ||||
} | } | ||||
``` | ``` | ||||
## Passing manual properties / overriding defaults | ## Passing manual properties / overriding defaults | ||||
The SonarScanner for Gradle adds a SonarQubeExtension extension to project and its subprojects, which allows you to configure/override the analysis properties. | |||||
The SonarScanner for Gradle adds a SonarExtension extension to project and its subprojects, which allows you to configure/override the analysis properties. | |||||
``` | ``` | ||||
// in build.gradle | // in build.gradle | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property "sonar.exclusions", "**/*Generated.java" | property "sonar.exclusions", "**/*Generated.java" | ||||
} | } | ||||
} | } | ||||
``` | ``` | ||||
SonarQube properties can also be set from the command line, or by setting a system property named exactly like the SonarQube property in question. This can be useful when dealing with sensitive information (e.g. credentials), environment information, or for ad-hoc configuration. | |||||
Sonar properties can also be set from the command line, or by setting a system property named exactly like the Sonar property in question. This can be useful when dealing with sensitive information (e.g. credentials), environment information, or for ad-hoc configuration. | |||||
``` | ``` | ||||
gradle sonarqube -Dsonar.host.url=http://sonar.mycompany.com -Dsonar.verbose=true | |||||
gradle sonar -Dsonar.host.url=http://sonar.mycompany.com -Dsonar.verbose=true | |||||
``` | ``` | ||||
While certainly useful at times, we recommend keeping the bulk of the configuration in a (versioned) build script, readily available to everyone. | While certainly useful at times, we recommend keeping the bulk of the configuration in a (versioned) build script, readily available to everyone. | ||||
A SonarQube property value set via a system property overrides any value set in a build script (for the same property). When analyzing a project hierarchy, values set via system properties apply to the root project of the analyzed hierarchy. Each system property starting with `sonar.` will be taken into account. | |||||
A Sonar property value set via a system property overrides any value set in a build script (for the same property). When analyzing a project hierarchy, values set via system properties apply to the root project of the analyzed hierarchy. Each system property starting with `sonar.` will be taken into account. | |||||
``` | ``` | ||||
// build.gradle | // build.gradle | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
properties["sonar.sources"] += sourceSets.custom.allSource.srcDirs | properties["sonar.sources"] += sourceSets.custom.allSource.srcDirs | ||||
properties["sonar.tests"] += sourceSets.integTest.allSource.srcDirs | properties["sonar.tests"] += sourceSets.integTest.allSource.srcDirs | ||||
``` | ``` | ||||
## Advanced topics | ## Advanced topics | ||||
### More on configuring SonarQube properties | |||||
Let's take a closer look at the `sonarqube.properties` `{}` block. As we have already seen in the examples, the `property()` method allows you to set new properties or override existing ones. Furthermore, all properties that have been configured up to this point, including all properties preconfigured by Gradle, are available via the properties accessor. | |||||
### More on configuring Sonar properties | |||||
Let's take a closer look at the `sonar.properties` `{}` block. As we have already seen in the examples, the `property()` method allows you to set new properties or override existing ones. Furthermore, all properties that have been configured up to this point, including all properties preconfigured by Gradle, are available via the properties accessor. | |||||
Entries in the properties map can be read and written with the usual Groovy syntax. To facilitate their manipulation, values still have their “idiomatic” type (File, List, etc.). After the sonarProperties block has been evaluated, values are converted to Strings as follows: Collection values are (recursively) converted to comma-separated Strings, and all other values are converted by calling their `toString()` methods. | Entries in the properties map can be read and written with the usual Groovy syntax. To facilitate their manipulation, values still have their “idiomatic” type (File, List, etc.). After the sonarProperties block has been evaluated, values are converted to Strings as follows: Collection values are (recursively) converted to comma-separated Strings, and all other values are converted by calling their `toString()` methods. | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Main Process" | property 'sonar.projectName', "${projectTitle} :: Main Process" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Process" | property 'sonar.projectName', "${projectTitle} :: Process" | ||||
} | } |
description = 'Code shared between the Web Server and the Compute Engine' | description = 'Code shared between the Web Server and the Compute Engine' | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Server :: Common" | property 'sonar.projectName', "${projectTitle} :: Server :: Common" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property "sonar.projectName", "${projectTitle} :: Web" | property "sonar.projectName", "${projectTitle} :: Web" | ||||
property "sonar.sources", "src/main/js" | property "sonar.sources", "src/main/js" |
id \\"org.sonarqube\\" version \\"3.5.0.2730\\" | id \\"org.sonarqube\\" version \\"3.5.0.2730\\" | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property \\"sonar.projectKey\\", \\"my-project\\" | property \\"sonar.projectKey\\", \\"my-project\\" | ||||
} | } |
id \\"org.sonarqube\\" version \\"3.5.0.2730\\" | id \\"org.sonarqube\\" version \\"3.5.0.2730\\" | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property \\"sonar.projectKey\\", \\"my-project\\" | property \\"sonar.projectKey\\", \\"my-project\\" | ||||
} | } | ||||
id \\"org.sonarqube\\" version \\"3.5.0.2730\\" | id \\"org.sonarqube\\" version \\"3.5.0.2730\\" | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property \\"sonar.projectKey\\", \\"my-project\\" | property \\"sonar.projectKey\\", \\"my-project\\" | ||||
} | } |
id "org.sonarqube" version "${GRADLE_SCANNER_VERSION}" | id "org.sonarqube" version "${GRADLE_SCANNER_VERSION}" | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property "sonar.projectKey", "${key}" | property "sonar.projectKey", "${key}" | ||||
property "sonar.qualitygate.wait", true | property "sonar.qualitygate.wait", true |
id \\"org.sonarqube\\" version \\"3.5.0.2730\\" | id \\"org.sonarqube\\" version \\"3.5.0.2730\\" | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property \\"sonar.projectKey\\", \\"my-project\\" | property \\"sonar.projectKey\\", \\"my-project\\" | ||||
property \\"sonar.qualitygate.wait\\", true | property \\"sonar.qualitygate.wait\\", true |
id \\"org.sonarqube\\" version \\"3.5.0.2730\\" | id \\"org.sonarqube\\" version \\"3.5.0.2730\\" | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property \\"sonar.projectKey\\", \\"my-project\\" | property \\"sonar.projectKey\\", \\"my-project\\" | ||||
} | } |
id "org.sonarqube" version "${GRADLE_SCANNER_VERSION}" | id "org.sonarqube" version "${GRADLE_SCANNER_VERSION}" | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property "sonar.projectKey", "${key}" | property "sonar.projectKey", "${key}" | ||||
} | } |
description = 'SonarQube WebServer internal APIs, used by other Web Server modules or Core Extensions' | description = 'SonarQube WebServer internal APIs, used by other Web Server modules or Core Extensions' | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: WebServer :: API" | property 'sonar.projectName', "${projectTitle} :: WebServer :: API" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: WebServer :: Authentification and Identity" | property 'sonar.projectName', "${projectTitle} :: WebServer :: Authentification and Identity" | ||||
} | } |
description = 'SonarQube WebServer-only code' | description = 'SonarQube WebServer-only code' | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Web Server :: Core" | property 'sonar.projectName', "${projectTitle} :: Web Server :: Core" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: WebServer :: ES" | property 'sonar.projectName', "${projectTitle} :: WebServer :: ES" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: WebServer :: PushAPI" | property 'sonar.projectName', "${projectTitle} :: WebServer :: PushAPI" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: WebServer :: WebAPI" | property 'sonar.projectName', "${projectTitle} :: WebServer :: WebAPI" | ||||
} | } |
description = 'WebServer "API" to write Web Services' | description = 'WebServer "API" to write Web Services' | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: WebServer :: WS" | property 'sonar.projectName', "${projectTitle} :: WebServer :: WS" | ||||
} | } |
description = 'SonarQube WebServer executable and Tomcat directly related code' | description = 'SonarQube WebServer executable and Tomcat directly related code' | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: WebServer" | property 'sonar.projectName', "${projectTitle} :: WebServer" | ||||
} | } |
id "org.cyclonedx.bom" | id "org.cyclonedx.bom" | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Application" | property 'sonar.projectName', "${projectTitle} :: Application" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Check API" | property 'sonar.projectName', "${projectTitle} :: Check API" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Core" | property 'sonar.projectName', "${projectTitle} :: Core" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Duplications" | property 'sonar.projectName', "${projectTitle} :: Duplications" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Markdown" | property 'sonar.projectName', "${projectTitle} :: Markdown" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Plugin API Implementation" | property 'sonar.projectName', "${projectTitle} :: Plugin API Implementation" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Scanner Engine Shaded" | property 'sonar.projectName', "${projectTitle} :: Scanner Engine Shaded" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Scanner Engine" | property 'sonar.projectName', "${projectTitle} :: Scanner Engine" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Scanner :: Protocol" | property 'sonar.projectName', "${projectTitle} :: Scanner :: Protocol" | ||||
property 'sonar.exclusions', 'src/main/java/org/sonar/scanner/protocol/viewer/**' | property 'sonar.exclusions', 'src/main/java/org/sonar/scanner/protocol/viewer/**' |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Shutdowner" | property 'sonar.projectName', "${projectTitle} :: Shutdowner" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Testing Harness" | property 'sonar.projectName', "${projectTitle} :: Testing Harness" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: LDAP Testing" | property 'sonar.projectName', "${projectTitle} :: LDAP Testing" | ||||
} | } |
sonarqube { | |||||
sonar { | |||||
skipProject = true | skipProject = true | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Web Service" | property 'sonar.projectName', "${projectTitle} :: Web Service" | ||||
property 'sonar.exclusions', 'src/main/java/org/sonarqube/ws/client/*/*.java' | property 'sonar.exclusions', 'src/main/java/org/sonarqube/ws/client/*/*.java' |
sonarqube { | |||||
sonar { | |||||
properties { | properties { | ||||
property 'sonar.projectName', "${projectTitle} :: Java UT Monitoring" | property 'sonar.projectName', "${projectTitle} :: Java UT Monitoring" | ||||
} | } | ||||
compileOnly 'org.aspectj:aspectjtools' | compileOnly 'org.aspectj:aspectjtools' | ||||
} | } | ||||
sonarqube { | |||||
sonar { | |||||
skipProject = true | skipProject = true | ||||
} | } |