Jenkins-JacocoControllerError:无法访问JaCoCo代理

时间:2018-11-28 01:47:43

标签: java maven jenkins jacoco jacoco-maven-plugin

我看到“ JaCoCo代理未启动”。错误,即使pom中提到了所有详细信息。这是我的pom.xml详细信息-

<properties>
    <jacoco.version>0.7.9</jacoco.version>
    <jacoco-maven-plugin.version>0.8.0</jacoco-maven-plugin.version>
    <jacoco.outputDir>${project.basedir}/target/jacoco.exec</jacoco.outputDir>
 </properties>

<dependency>
    <groupId>org.sonarsource.java</groupId>
    <artifactId>sonar-jacoco-listeners</artifactId>
    <version>3.8</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.jacoco</groupId>
    <artifactId>org.jacoco.agent</artifactId>
    <version>${jacoco-maven-plugin.version}</version>
    <classifier>runtime</classifier>
</dependency>

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>${jacoco-maven-plugin.version}</version>
    <configuration>
        <excludes>
            <exclude>**/NameOfApplication.*</exclude>\
            <exclude>**/JerseyConfig.*</exclude>
            <exclude>**/ApplicationConfigProperties.*</exclude>
        </excludes>
    </configuration>
    <executions>
        <execution>
            <id>default-instrument</id>
            <goals>
                <goal>instrument</goal>
            </goals>
        </execution>
        <execution>
            <id>default-restore-instrumented-classes</id>
            <goals>
                <goal>restore-instrumented-classes</goal>
            </goals>
        </execution>
        <execution>
            <id>default-report</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>2.12.4</version>
        </dependency>
    </dependencies>
    <configuration>
        <systemPropertyVariables>
            <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
        </systemPropertyVariables>
        <testFailureIgnore>true</testFailureIgnore>
        <excludes>
            <exclude>**/config/*</exclude>
            <exclude>**/NameOfApplication.*</exclude>
            <exclude>**/ApplicationConfigProperties.*</exclude>
        </excludes>
    </configuration>
</plugin>

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven-surefire-plugin.version}</version>
        <configuration>
            <includes>
                <include>karate/TestName.java</include>
            </includes>
            <!-- needed for jacoco to integrate properly -->
            <argLine>${argLine}</argLine>
            <properties>
                <property>
                    <name>listener</name>
                    <value>org.sonar.java.jacoco.JUnitListener</value>
                </property>
            </properties>
        </configuration>
    </plugin>
    <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco.version}</version>
        <executions>
            <execution>
                <id>default-prepare-agent</id>
                <goals>
                    <goal>prepare-agent</goal>
                </goals>
            </execution>
            <execution>
                <id>default-report</id>
                <phase>test</phase>
                <goals>
                    <goal>report</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>

如果我删除此块,它将运行良好:

<properties>
    <property>
        <name>listener</name>
        <value>org.sonar.java.jacoco.JUnitListener</value>
    </property>
</properties>

但是我无法删除该阻止,并且看到此错误-

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project projectName: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test failed: There was an error in the forked process
[ERROR] org.apache.maven.surefire.util.SurefireReflectionException: org.sonar.java.jacoco.JacocoController$JacocoControllerError: Unable to access JaCoCo Agent - make sure that you use JaCoCo and version not lower than 0.6.2.
[ERROR] at org.apache.maven.surefire.util.ReflectionUtils.instantiateOneArg(ReflectionUtils.java:135)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.createProviderInCurrentClassloader(ForkedBooter.java:321)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
[ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
[ERROR] Caused by: org.sonar.java.jacoco.JacocoController$JacocoControllerError: Unable to access JaCoCo Agent - make sure that you use JaCoCo and version not lower than 0.6.2.
[ERROR] at org.sonar.java.jacoco.JacocoController.<init>(JacocoController.java:50)
[ERROR] at org.sonar.java.jacoco.JacocoController.getInstance(JacocoController.java:39)
[ERROR] at org.sonar.java.jacoco.JUnitListener.<init>(JUnitListener.java:33)
[ERROR] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[ERROR] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[ERROR] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[ERROR] at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[ERROR] at java.lang.Class.newInstance(Class.java:442)
[ERROR] at org.apache.maven.surefire.util.ReflectionUtils.instantiate(ReflectionUtils.java:112)
[ERROR] at org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactory.createCustomListeners(JUnit4RunListenerFactory.java:45)
[ERROR] at org.apache.maven.surefire.junitcore.JUnitCoreProvider.<init>(JUnitCoreProvider.java:106)
[ERROR] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[ERROR] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[ERROR] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[ERROR] at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[ERROR] at org.apache.maven.surefire.util.ReflectionUtils.instantiateOneArg(ReflectionUtils.java:131)
[ERROR] ... 4 more
[ERROR] Caused by: java.lang.IllegalStateException: JaCoCo agent not started.
[ERROR] at org.jacoco.agent.rt.internal_290345e.Agent.getInstance(Agent.java:72)
[ERROR] at org.jacoco.agent.rt.RT.getAgent(RT.java:32)
[ERROR] at org.sonar.java.jacoco.JacocoController.<init>(JacocoController.java:46)
[ERROR] ... 19 more
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

我是否需要删除/添加pom才能使其正常工作? 我已尝试关注此帖子-jacoco coverage per test setup,但没有成功。

请让我知道是否需要更多信息。

任何帮助将不胜感激。

0 个答案:

没有答案