Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为sonar2.12(多模块maven)配置jacoco代理_Maven_Jacoco - Fatal编程技术网

为sonar2.12(多模块maven)配置jacoco代理

为sonar2.12(多模块maven)配置jacoco代理,maven,jacoco,Maven,Jacoco,Sonar最新版本2.12集成了Jacoco插件,我想将其用于多模块项目的代码覆盖部分 我有一个这样的结构 proj.com.parent proj.com.provider proj,com.test 提供者项目的测试用例在测试项目中。当我将sonar中的代码覆盖率插件设置为jacoco时,它执行得很好,但组合的代码覆盖率没有显示在仪表板上。我看到一篇文章说,一个jacoco.exec文件就可以解决这个问题,但我无法做到这一点 我已尝试在我的pom中配置以下内容,如下所示 <

Sonar最新版本2.12集成了Jacoco插件,我想将其用于多模块项目的代码覆盖部分

我有一个这样的结构

proj.com.parent
   proj.com.provider
   proj,com.test
提供者项目的测试用例在测试项目中。当我将sonar中的代码覆盖率插件设置为jacoco时,它执行得很好,但组合的代码覆盖率没有显示在仪表板上。我看到一篇文章说,一个jacoco.exec文件就可以解决这个问题,但我无法做到这一点

我已尝试在我的pom中配置以下内容,如下所示

<profile>
        <id>sonar</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                          <argLine>-javaagent:${sonar.jacoco.jar}=destfile=${sonar.jacoco.reportPath}</argLine> 
                    </configuration>
                </plugin>
            </plugins>
        </build>
        <properties>
            <sonar.jacoco.reportPath>${basedir}/code-coverage/jacoco.exec</sonar.jacoco.reportPath>
            <sonar.jacoco.jar> C:\sonar-2.12\war\sonar-server\deploy\plugins\jacoco\META-INF\lib\org.jacoco.agent-0.5.3.201107060350.jar</sonar.jacoco.jar>
        </properties>

声纳
org.apache.maven.plugins
maven surefire插件
-javaagent:${sonar.jacoco.jar}=destfile=${sonar.jacoco.reportPath}
${basedir}/code coverage/jacoco.exec
C:\sonar-2.12\war\sonar服务器\deploy\plugins\jacoco\META-INF\lib\org.jacoco.agent-0.5.3.201107060350.jar

但在maven命令行“mvn clean install”中,我得到了以下错误:

在C:\sonar-2.12\war\sonar server\deploy\plugins\jacoco\META-INF\lib\org.jacoco.agent-0.5.3.201107060350.jar中找不到Premain类清单属性 初始化VM时出错 代理库无法初始化:仪器


有人能在这方面提供帮助吗?

也许您应该尝试将属性sonar.core.codeCoveragePlugin设置为值jacoco。Sonar中的默认代码覆盖工具仍然是cobertura。请参阅上的以下文档

如果这没有帮助,我找到了以下链接(从Maven运行Jacoco,正如您尝试的那样):


您指向的jar不是jar..使用winrar提取它,您将在其中获得另一个jar。调用jacocagent.jar。要检查您是否得到了正确的jar,只需提取jacocagent.jar 并查找manifest.mf,它应该有一个premain类的条目


应该可以。我也有同样的问题。看一看

有一个普通的jar工件,还有一个带有分类器运行时的jar。您需要将“运行时”工件用作代理jar。我只需下载Jacoco代理运行时jar和maven依赖插件,如下所示:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>download-jacoco-agent</id>
            <phase>pre-integration-test</phase>
            <goals>
                <goal>copy</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>org.jacoco</groupId>
                        <artifactId>org.jacoco.agent</artifactId>
                        <version>0.6.3.201306030806</version>
                        <classifier>runtime</classifier>
                        <outputDirectory>${project.build.directory}</outputDirectory>
                        <destFileName>jacoco-agent.jar</destFileName>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

org.apache.maven.plugins
maven依赖插件
下载jacoco代理
预集成测试
复制
org.jacoco
org.jacoco.agent
0.6.3.201306030806
运行时
${project.build.directory}
jacoco-agent.jar
然后,您只需要定义以下命令行选项:

<argLine>-javaagent:${project.build.directory}/jacoco-agent.jar=destfile=${sonar.jacoco.reportPath}</argLine> 
-javaagent:${project.build.directory}/jacoco-agent.jar=destfile=${sonar.jacoco.reportPath}

是的,马克,我访问了你提供的链接,事实上,我从同一个网站获得了详细信息。但我不知道他们使用了哪个版本的声纳,我的问题是运行时抛出的错误,我不确定确切的原因是什么。