Add Sonar Kotlin support
Rework parent pom so configuration can be inherited for all
modules from root ccsdk-apps/pom.xml.
Also updated some pom description so it is better presented
within Sonar.
These commands can be used locally to publish report to Sonar:
mvn clean install -e -Dsonar
mvn sonar:sonar -e -Dsonar -Dsonar.host.url=https://sonar.onap.org
Note: kotlin code coverage is not fully functional due to
https://github.com/jacoco/jacoco/issues/763
That issue has been fixed in jacoco master branch, but hasn't
been released. Once released, in version 0.8.3, we can override
version of jacoco plugin for ccsdk-apps.
Change-Id: Ic382a4d0df9d14a82536993d2dfa55d7f105f951
Issue-ID: CCSDK-725
Signed-off-by: Alexis de Talhouët <adetalhouet89@gmail.com>
diff --git a/pom.xml b/pom.xml
index 911d841..d6dc5c0 100755
--- a/pom.xml
+++ b/pom.xml
@@ -21,18 +21,45 @@
<name>ONAP</name>
</organization>
+ <properties>
+ <!--Don't set any language to let sonar enable multi-language support-->
+ <sonar.language/>
+ <!--Provide src/main as source path so both src/main/java and src/main/kotlin are scanned-->
+ <sonar.sources>src/main</sonar.sources>
+ <!--Provide src/test as source path for test so both src/test/java and src/test/kotlin are scanned-->
+ <sonar.tests>src/test</sonar.tests>
+ <!--Only include java and kt files to the scan-->
+ <sonar.inclusions>**/*.java,**/*.kt</sonar.inclusions>
+ <!--Specify path to load jacoco XLM report, as Sonar can't load Kotlin coverage from binary report.
+ Note: coverage for now is invalid and is failing to load because of:
+ "Cannot import coverage information for file '{file}', coverage data is invalid."
+ see https://github.com/jacoco/jacoco/issues/763
+ That issue has been fixed in 0.8.3 but haven't yet been release. -->
+ <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
+ </properties>
+
<modules>
<module>components</module>
<module>ms</module>
</modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <!--Change version to 0.8.3 when released-->
+ <version>${jacoco.version}</version>
+ </plugin>
+ </plugins>
+ </build>
+
<scm>
<connection>scm:git:ssh://git@${onap.git.host}/apps.git</connection>
<developerConnection>scm:git:ssh://${onap.git.host}:${onap.git.port}/${onap.git.project}/apps.git</developerConnection>
<url>${onap.git.protocol}://${onap.git.host}/projects/${onap.git.project}/repos/apps/browse</url>
</scm>
-
<profiles>
<profile>
<id>blackduck</id>
@@ -71,4 +98,5 @@
</profile>
</profiles>
+
</project>