Как сгенерировать отчеты jacoco и scoverage с помощью maven за одну работу jenkins

У меня есть многомодульный проект с java и scala. В Jenkins установлены плагины jacoco и scoverage, и я хочу сгенерировать отчеты jacoco и scoverage (оба) в одном задании сборки в Jenkins, но создается только один отчет, jacoco или scoverage.

Ниже команды mvn пробовали до сих пор -

mvn -B -s $MVN_SETTINGS jacoco:prepare-agent install scoverage:report jacoco:report

и

mvn -B -s $MVN_SETTINGS jacoco:prepare-agent install jacoco:report scoverage:report

Фрагмент моего файла pom -

Plugins section -
<plugins>
    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.7.9</version>
        <configuration>
            <destFile>./target/jacoco.exec</destFile>
            <append>true</append>
        </configuration>
        <executions>
            <execution>
                <id>default-prepare-agent</id>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>default-report</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>report</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    <plugin>
        <groupId>org.scoverage</groupId>
        <artifactId>scoverage-maven-plugin</artifactId>
        <version>1.3.0</version>
        <configuration>
            <scalaVersion>2.10.4</scalaVersion>
            <highlighting>true</highlighting>
            <aggregate>true</aggregate>
        </configuration>
    </plugin>
</plugins>

Reporting section - 
<reporting>
    <outputDirectory>${project.build.directory}/site</outputDirectory>
    <plugins>
        <plugin>
            <groupId>org.scoverage</groupId>
            <artifactId>scoverage-maven-plugin</artifactId>
            <version>1.3.0</version>
            <configuration>
                <aggregate>true</aggregate>
            </configuration>
            <reportSets>
                <reportSet>
                    <reports>
                        <report>report</report>
                    </reports>
                </reportSet>
            </reportSets>
        </plugin>
        <plugin>
        </plugins>
    </reporting>

Когда использую - mvn -B -s $MVN_SETTINGS jacoco:prepare-agent install scoverage:report jacoco:report

Создается отчет jacoco

Журнал сборки -

05:30:51 [Компиляция] [ИНФОРМАЦИЯ] --- scoverage-maven-plugin: 1.3.0: report (default-cli) @ ABC --- 05:30:51 [Компиляция] [ИНФОРМАЦИЯ] Чтение инструментария scoverage [ /workspace/Build-Pipeline/ABC/target/scoverage-data/scoverage.coverage.xml] ... 05:30:51 [Скомпилировать] [ИНФОРМАЦИЯ] Чтение измерений scoverage [/ workspace / Build-Pipeline / ABC / target / scoverage-data / scoverage.measurements. *] ... 05:30:51 [Компиляция] [ИНФОРМАЦИЯ] Создание отчетов о покрытии ... 05:30:51 [Компиляция] [ИНФОРМАЦИЯ] Написанный отчет Cobertura XML [/ workspace / Build -Pipeline / ABC / target / cobertura.xml] 05:30:52 [Компиляция] [ИНФОРМАЦИЯ] Написанный отчет о покрытии XML [/workspace/Build-Pipeline/ABC/target/scoverage.xml] 05:30:53 [Компиляция] [INFO] Письменный отчет о покрытии в формате HTML [/workspace/Build-Pipeline/ABC/target/site/scoverage/index.html] 05:30:53 [Compile] [INFO] Покрытие утверждения .: 0.00% 05:30:53 [ Скомпилировать] [ИНФОРМАЦИЯ] Покрытие ветви ....: 0.00% 05:30:53 [Компилировать] [ИНФОРМАЦИЯ] Отчеты о покрытии завершены.

Когда я использую -

mvn -B -s $MVN_SETTINGS jacoco:prepare-agent install jacoco:report scoverage:report

Создается отчет об оценке

Журнал сборки -

05:15:07 [Compile] [INFO] --- scoverage-maven-plugin: 1.3.0: report (default-cli) @ ABC --- 05:15:07 [Compile] [INFO] Чтение инструментария scoverage [ /workspace/Build-Pipeline/ABC/target/scoverage-data/scoverage.coverage.xml] ... 05:15:07 [Скомпилировать] [ИНФОРМАЦИЯ] Чтение измерений scoverage [/ workspace / Build-Pipeline / ABC / target / scoverage-data / scoverage.measurements. *] ... 05:15:07 [Compile] [INFO] Создание отчетов о покрытии ... 05:15:07 [Compile] [INFO] Написанный отчет Cobertura XML [/ workspace / Build -Pipeline / ABC / target / cobertura.xml] 05:15:08 [Compile] [INFO] Написанный отчет о покрытии XML [/workspace/Build-Pipeline/ABC/target/scoverage.xml] 05:15:08 [Compile] [INFO] Письменный отчет о покрытии HTML [/workspace/Build-Pipeline/ABC/target/site/scoverage/index.html] 05:15:08 [Compile] [INFO] Покрытие утверждения .: 0.00% 05:15:08 [ Скомпилировать] [ИНФОРМАЦИЯ] Покрытие ветви ....: 0.00% 05:15:08 [Компилировать] [ИНФОРМАЦИЯ] Отчеты о покрытии завершены.

Может кто-нибудь указать мне, что происходит не так?

Большое спасибо


person akish    schedule 14.01.2019    source источник


Ответы (1)


Учитывая src/main/java/HelloJava.java

class HelloJava {
  public static String msg() {
    return "Hello";
  }
}

src/main/scala/HelloScala.scala

object HelloScala {
  def msg = {
    "Hello"
  }
}

src/test/java/HelloTest.java

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class HelloTest {
  @Test
  public void test() {
    assertEquals("Hello", HelloJava.msg());
    assertEquals("Hello", HelloScala.msg());
  }
}

и pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>example</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>2.11.6</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>src/main/scala</source>
              </sources>
            </configuration>
          </execution>
          <execution>
            <id>add-test-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-test-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>src/test/scala</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.4.4</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.2</version>
        <executions>
          <execution>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.scoverage</groupId>
        <artifactId>scoverage-maven-plugin</artifactId>
        <version>1.1.1</version>
        <configuration>
          <highlighting>true</highlighting>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

исполнение mvn clean test jacoco:report scoverage:report

произведет target/site/jacoco/index.html

отчет jacoco

и target/site/scoverage/index.html

отчет об оценке

person Godin    schedule 15.01.2019