当子目录中存在某些模块时,用于多模块项目的Jacoco maven配置

时间:2017-09-13 09:42:32

标签: maven jacoco

我的项目包含以下结构

<modules>
    <module>A</module>
    <module>B</module>
    <module>plugins/C</module>
    <module>plugins/D</module>
</modules>
<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.7.201606060606</version>
    <executions>
        <execution>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>report</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

我已经像这样配置了主pom

{{ set myvar = "<img src='{% theme('/img/logo.png') %}' />" }}
<div class='mylogo'>{% myvar|raw %}</div>

当我跑步&#34; mvn验证&#34; jacoco报告仅针对模块A&amp; B.对于模块插件/ C和插件/ D Jacoco未执行,因此没有报告。

2 个答案:

答案 0 :(得分:0)

为你的插件文件夹添加另一个pom.xml,让它从你的父pom继承并定义C&amp; D作为子模块,从父pom中删除模块并添加插件文件夹。并且不要忘记从C&amp; C更改父母pom D到插件pom,应该这样做。

答案 1 :(得分:0)

这个问题不是关于jacoco-maven-plugin,而是关于Maven中的aggregationinheritance

给定example/pom.xml

<project>
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>example</artifactId>
  <version>0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <modules>
    <module>A</module>
    <module>plugins/C</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.7.7.201606060606</version>
        <executions>
          <execution>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>report</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

指定example/Aexample/plugins/C应该构建为example的构建的一部分,但是没有指定任何关于插件,属性等的继承的继承。

对于来自example/plugins/C/pom.xml的{​​{1}}中的继承,第一个应该将第二个声明为example/pom.xml

parent

在这种情况下,插件的配置将被继承,并且它们将被执行:

<project>
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.example</groupId>
    <artifactId>example</artifactId>
    <version>0.1-SNAPSHOT</version>
    <relativePath>../..</relativePath>
  </parent>

  <groupId>org.example</groupId>
  <artifactId>C</artifactId>
  <version>0.1-SNAPSHOT</version>
</project>

P.S。截至今日版本的JaCoCo最新版本为0.7.9。