如何在多个Jenkins作业之间共享jacoco exec文件

时间:2016-01-28 11:35:06

标签: jenkins gradle jacoco

我有几个Java项目在Gradle和Jacoco插件的几​​个Jenkins作业上运行。

假设我有两份工作:

  • 应用

核心工作,从SVN拉到他的工作区: / Jenkins_workspace / core / ,然后构建然后创建它的jacoco exec文件。它工作正常,我可以看到代码覆盖率。

应用作业,从SVN拉到他的工作区: / Jenkins_workspace / app / ,然后构建然后创建其jacoco exec文件。它工作正常,我可以看到代码覆盖率

然而,在app工作中,有一些测试可以覆盖核心项目的一部分。因此,应更新核心作业的代码覆盖率。我想核心项目应该可以访问app作业的jacoco exec文件,但它们位于两个不同的工作区。

问题:核心作业如何访问应用作业的jacoco exec文件以更新核心代码覆盖率?

2 个答案:

答案 0 :(得分:0)

您可以尝试同时使用" destFile"并且"追加"组态。 如果你使用maven:

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>jacoco-ut</id>
            <phase>process-test-classes</phase>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
            <configuration>
                <destFile>/path/to/jacoco.exec</destFile>
                <append>true</append>
            </configuration>
        </execution>    
    </executions>
</plugin>

或gradle:

test {
    jacoco {
        append = true
        destinationFile = file("/path/to/jacoco.exec")
    }
}

答案 1 :(得分:0)

不知何故,jacoco插件不允许在当前作业工作区之外搜索exec文件。

所以我所做的是,对于每个应用程序构建,其jacoco exec文件都被复制到核心工作区。然后核心工作将找到应用程序作业的jacoco exec文件没有问题。