Copy oparent sonar setup
[aai/aai-common.git] / aai-parent / pom.xml
index ef0538c..490a385 100644 (file)
@@ -27,7 +27,7 @@
        <parent>
                <groupId>org.onap.aai.aai-common</groupId>
                <artifactId>aai-common</artifactId>
-               <version>1.6.4-SNAPSHOT</version>
+               <version>1.6.5-SNAPSHOT</version>
        </parent>
        <artifactId>aai-parent</artifactId>
        <name>aai-parent</name>
                <reflections.version>0.9.10</reflections.version>
                <snakeyaml.version>1.25</snakeyaml.version>
                <spring.boot.version>1.5.22.RELEASE</spring.boot.version>
+               <jacoco.version>0.8.5</jacoco.version>
+               <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
+               <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
+               <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
+               <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions>
+               
+               <sonar.scanner.version>3.7.0.1746</sonar.scanner.version>
+               
                <spring.web.version>4.3.25.RELEASE</spring.web.version>
                <spring.jms.version>4.3.25.RELEASE</spring.jms.version>
                <spring.test.version>4.3.25.RELEASE</spring.test.version>
                                        <artifactId>docker-maven-plugin</artifactId>
                                        <version>${docker.fabric.version}</version>
                                </plugin>
-                       </plugins>
+                               
+                               <plugin>
+                                 <groupId>org.sonarsource.scanner.maven</groupId>
+                                 <artifactId>sonar-maven-plugin</artifactId>
+                                 <version>${sonar.scanner.version}</version>
+                               </plugin>
 
+                               <plugin>
+                                 <groupId>org.jacoco</groupId>
+                                 <artifactId>jacoco-maven-plugin</artifactId>
+                                 <version>${jacoco.version}</version>
+                                 <configuration>
+                                   <!-- Note: This exclusion list should match <sonar.exclusions>
+                                        property above -->
+                                   <excludes>
+                                     <exclude>**/gen/**</exclude>
+                                     <exclude>**/generated-sources/**</exclude>
+                                     <exclude>**/yang-gen/**</exclude>
+                                     <exclude>**/pax/**</exclude>
+                                   </excludes>
+                                 </configuration>
+                                 <executions>
+                                   <!--
+                                       Prepares the property pointing to the JaCoCo runtime agent which
+                                       is passed as VM argument when Maven the Surefire plugin is executed.
+                                   -->
+                                   <execution>
+                                     <id>pre-unit-test</id>
+                                     <goals>
+                                       <goal>prepare-agent</goal>
+                                     </goals>
+                                     <configuration>
+                                       <!-- Sets the path to the file which contains the execution data
+                                            . -->
+                                       <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile>
+                                       <!--
+                                           Sets the name of the property containing the settings
+                                           for JaCoCo runtime agent.
+                                       -->
+                                       <propertyName>surefireArgLine</propertyName>
+                                     </configuration>
+                                   </execution>
+                                   <!--
+                                       Ensures that the code coverage report for unit tests is created after
+                                       unit tests have been run.
+                                   -->
+                                   <execution>
+                                     <id>post-unit-test</id>
+                                     <phase>test</phase>
+                                     <goals>
+                                       <goal>report</goal>
+                                     </goals>
+                                     <configuration>
+                                       <!-- Sets the path to the file which contains the execution data
+                                            . -->
+                                       <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
+                                       <!-- Sets the output directory for the code coverage report. -->
+                                       <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
+                                     </configuration>
+                                   </execution>
+                                   <execution>
+                                     <id>pre-integration-test</id>
+                                     <phase>pre-integration-test</phase>
+                                     <goals>
+                                       <goal>prepare-agent</goal>
+                                     </goals>
+                                     <configuration>
+                                       <!-- Sets the path to the file which contains the execution data
+                                            . -->
+                                       <destFile>${project.build.directory}/code-coverage/jacoco-it.exec</destFile>
+                                       <!--
+                                           Sets the name of the property containing the settings
+                                           for JaCoCo runtime agent.
+                                       -->
+                                       <propertyName>failsafeArgLine</propertyName>
+                                     </configuration>
+                                   </execution>
+                                   <!--
+                                       Ensures that the code coverage report for integration tests after
+                                       integration tests have been run.
+                                   -->
+                                   <execution>
+                                     <id>post-integration-test</id>
+                                     <phase>post-integration-test</phase>
+                                     <goals>
+                                       <goal>report</goal>
+                                     </goals>
+                                     <configuration>
+                                       <!-- Sets the path to the file which contains the execution data
+                                            . -->
+                                       <dataFile>${project.build.directory}/code-coverage/jacoco-it.exec</dataFile>
+                                       <!-- Sets the output directory for the code coverage report. -->
+                                       <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
+                                     </configuration>
+                                   </execution>
+                           </executions>
+                         </plugin>
+                       </plugins>
                </pluginManagement>
        </build>