Eclipse 如何在Jenkins中使用SonarQube和Maven配置Jacoco

Eclipse 如何在Jenkins中使用SonarQube和Maven配置Jacoco,eclipse,jenkins,sonarqube,maven-3,jacoco,Eclipse,Jenkins,Sonarqube,Maven 3,Jacoco,我正在尝试启用Sonarqube代码覆盖率扫描。我在Eclipse中从事一个Maven项目,并且已经成功地建立了Jenkins构建,包括声纳扫描 我已经成功地在本地使用了Jacoco;我将Jacoco插件添加到pom.xml中,并通过runas->Maven build…执行Jacoco:prepare-agent-test-Jacoco:report。调用之后,html报告位于target\site\jacoco中,它们似乎是正确的 现在我需要让它在Jenkins中工作,但我不知道如何正确配置

我正在尝试启用Sonarqube代码覆盖率扫描。我在Eclipse中从事一个Maven项目,并且已经成功地建立了Jenkins构建,包括声纳扫描

我已经成功地在本地使用了Jacoco;我将Jacoco插件添加到pom.xml中,并通过
runas->Maven build…
执行
Jacoco:prepare-agent-test-Jacoco:report
。调用之后,html报告位于
target\site\jacoco
中,它们似乎是正确的

现在我需要让它在Jenkins中工作,但我不知道如何正确配置构建。目前,maven目标
clean package-fae
调用独立声纳分析
构建步骤正在执行。 我发现需要设置
sonar.jacoco.reportPath
,但我不知道在哪里设置它,也不知道在哪里调用
jacoco:report
目标。此外,我还不确定是否需要将jacoco插件也添加到jenkins中,或者在maven项目中这样做是否足够


非常感谢您提供的任何帮助,同时请告诉我是否有什么可以改进我的问题。

是的,您需要在jenkins中安装和配置jacoco插件

愚弄这个解释它的链接


我终于成功了。如果有人有类似问题,我将在此处发布我的解决方案:

在Jenkins中,需要配置属性sonar.junit.reportsPath和sonar.jacoco.reportPath。詹金斯不需要执行其他目标

在项目pom.xml中,需要指定

    <properties>
       <jacoco-maven-plugin.version>0.7.4.201502262128</jacoco-maven-plugin.version>
    </properties>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.jacoco</groupId>
                                    <artifactId>jacoco-maven-plugin</artifactId>
                                    <versionRange>(,0.7.4.201502262128]</versionRange>
                                    <goals>
                                        <goal>prepare-agent</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>${jacoco-maven-plugin.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

0.7.4.201502262128
org.eclipse.m2e
生命周期映射
1.0.0
org.jacoco
jacocomaven插件
(,0.7.4.201502262128]
配制剂
org.jacoco
jacocomaven插件
${jacoco maven plugin.version}
配制剂
必须执行目标
prepare agent
,但它首先生成一个

生命周期配置未涵盖的资源路径位置类型插件执行


为了解决这个问题,需要使用
pluginManagement
块,因为它忽略了即将出现的问题。这里很明显使用
versionRange
,而不仅仅是
version
,还需要这个特定的版本,更高的版本在这里不起作用。

谢谢,但我无法配置Jenkins。但我发现,这个版本确实起作用不必安装插件,可以通过MavenIn进行配置,以便报告需要安装和配置插件的状态,如果您不想拥有配置Jenkins的必要权限,请尝试一次了解结果