org.jacoco.maven.AgentMojo的getClass失败 - Jenkins无法使用JaCoCo maven插件构建,但在本地工作

时间:2016-09-23 12:59:00

标签: java maven jenkins jacoco

我已将JaCoCo插件添加到我的Maven插件中,并可在本地成功生成覆盖率报告。

但是,在我提交更改的pom.xmlJenkins尝试构建Maven项目(由多个模块组成)之后,构建失败,输出如下:< / p>

[HUDSON] Collecting dependencies info
[HUDSON] Collecting dependencies info
[HUDSON] Collecting dependencies info
[HUDSON] Collecting dependencies info
[JENKINS] Recording test results
[WARNING] Failed to getClass for org.jacoco.maven.AgentMojo
[JENKINS] Archiving /var/lib/jenkins/jobs/xy xyz1
[JENKINS] Archiving /var/lib/jenkins/jobs/xy xyz2
[JENKINS] Archiving /var/lib/jenkins/jobs/xy xyz3
[JENKINS] Archiving /var/lib/jenkins/jobs/xy xyz4
channel stopped
Finished: FAILURE

我得到的唯一警告是Failed to getClass for org.jacoco.maven.AgentMojo所以我认为这可能导致构建失败。

首先我认为这是因为代理设置,但我在settings.xml版本中添加了相同的Jenkins,因为我在本地使用(使用该插件已成功使用)。

此外,我还试图在几个地方查找此特定错误,但没有运气。

还尝试更改pom执行,但由于它在本地工作,我认为没有理由更改以下Maven pom.xml设置:

        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>post-unit-test</id>
                    <phase>test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

为什么Jenkins不会记录比简单[WARNING]行更多的错误?

Jenkins在本地成功运行getClass时,Maven无法JaCoCo的原因是什么?

我可以在不将maven插件添加到xml的情况下获得Jenkins覆盖吗? (根据我发现,为了开始使用Task<void>插件,需要添加它)

2 个答案:

答案 0 :(得分:0)

我正在使用Jenkins JaCoCo插件来做到这一点。您只需要指定java src文件,.class文件和测试类的位置。该插件还允许从Jenkins界面访问html报告输出。

答案 1 :(得分:0)

对我来说可疑的一点是,您已将report目标附加到test阶段,这似乎是错误的:有关测试覆盖率的报告无法在测试已执行,因此您必须选择下一阶段的其他阶段。例如,verify阶段(report目标的默认阶段)。