Мы поддерживаем древний проект, который начнется с 2010 года или около того. Наша компания только что обновила версию sonarqube до версии, которая не поддерживает использование sonar.jacoco.itReportPath
и sonar.jacoco.reportPath
. Поэтому нам нужно обновить конфигурацию jacoco проекта, чтобы получить отчет xml. Но текущий конфиг действительно странный, и все старые парни ушли, поэтому мы не знаем, что означает конфиг и что нужно обновить. Вот структура проекта:
/root
/.git
/project-folder
/module1
/module2
...
/selenium-test-module
pom.xml //test-pom
pom.xml
pom.xml // root-pom
root pom:
<properties>
<sonar.jacoco.itReportPath>target/jacoco.excec</sonar.jacoco.itReportPath>
<sonar.jacoco.reportPath>target/jacoco.excec</sonar.jacoco.reportPath>
</properties>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<configuration>
<append>true</append>
</configuration>
<executions>
<execution>
<id>agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${sonar.jacoco.reportPath}</destFile>
</configuration>
</execution>
<execution>
<id>agent-integration</id>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<destFile>${sonar.jacoco.itReportPath}</destFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
test pom:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!--version>2.3.2</version-->
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>unpack-classes</id>
<phase>package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>our.package.name</groupId>
<artifactId>module1</artifactId>
<version>${project.version}</version>
<type>jar</type>
</artifactItem>
<artifactItem>
<groupId>our.package.name</groupId>
<artifactId>module12</artifactId>
<version>${project.version}</version>
<type>jar</type>
</artifactItem>
</artifactItems>
<includes>**/*.class</includes>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</configuration>
</execution>
<execution>
<id>unpack-sources</id>
<phase>package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>our.package.name</groupId>
<artifactId>module1</artifactId>
<version>${project.version}</version>
<type>jar</type>
</artifactItem>
<artifactItem>
<groupId>our.package.name</groupId>
<artifactId>module12</artifactId>
<version>${project.version}</version>
<type>jar</type>
</artifactItem>
</artifactItems>
<includes>**/*.java</includes>
<outputDirectory>${project.build.directory}/generated-sources/project</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/web-module/WEB-INF/classes</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>add-source</id>
<phase>package</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/generated-sources/project</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.1.201405082137</version>
<configuration>
<propertyName>jacoco.agent.argLine</propertyName>
<address>192.168.224.222</address>
<port>6300</port>
<includes>
<include>our/package/name/**</include>
</includes>
<classFolders>
<classFolder>${basedir}/target/classes</classFolder>
<classFolder>${basedir}/../module1/target/classes</classFolder>
<classFolder>${basedir}/../module2/target/classes</classFolder>
</classFolders>
<sourceFolders>
<sourceFolder>${basedir}/src/main/java</sourceFolder>
<sourceFolder>${basedir}/../module1/src/main/java</sourceFolder>
<sourceFolder>${basedir}/../module1/src/main/java</sourceFolder>
</sourceFolders>
</configuration>
<executions>
<execution>
<id>report</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
Только тестовый модуль селена сделать тест на селен и не зависеть от других модулей в его pom. Как работает эта настройка? Когда я запускаю локальный тест, целевая папка была создана в папке root, содержит все jar-файлы всех модулей и jacoco.exe c, целевые папки другого модуля также имеют jacoco.exce c.
Как я могу обновить эту конфигурацию, чтобы создать xml отчет с агрегатом отчетов? Я пытаюсь изменить цель отчета в тестовой помпе на агрегат отчета, но он просто создает папку цели / сайта в каждом модуле с пустым jacoco. xml. Нужно ли добавлять зависимость к другому модулю в тестовом помпе?