Jenkins 如何在远程服务器上生成jacoco.exec文件

Jenkins 如何在远程服务器上生成jacoco.exec文件,jenkins,sonarqube,jacoco,test-coverage,jacoco-maven-plugin,Jenkins,Sonarqube,Jacoco,Test Coverage,Jacoco Maven Plugin,我正在运行一个tomcat服务器,在它的catalina.sh中,我导出了JAVA\u OPTS,如下所示 JAVA_OPTS=“$JAVA_OPTS-javaagent:/opt/jacoco/lib/jacoagent.jar=destfile=/tmp/jacoco.exec,append=true,includes=*” 这将在同一台机器的/tmp文件夹中生成jacoco.exec文件。如何在远程机器(例如jenkins从机)上生成exec文件,以便通过sonar获得覆盖范围。要实现这一

我正在运行一个tomcat服务器,在它的
catalina.sh
中,我导出了
JAVA\u OPTS
,如下所示

JAVA_OPTS=“$JAVA_OPTS-javaagent:/opt/jacoco/lib/jacoagent.jar=destfile=/tmp/jacoco.exec,append=true,includes=*”


这将在同一台机器的
/tmp
文件夹中生成jacoco.exec文件。如何在远程机器(例如jenkins从机)上生成exec文件,以便通过sonar获得覆盖范围。

要实现这一点,您需要确保多点:

  • 您的jenkins节点上是否有jacoagent.jar,位于
    /opt/jacoco/lib

    如果没有,你可以

    • [解决方案a]要么放在那里,那么基本配置是正确的
    • [解决方案b]使用您的代码签入它,或通过maven加载它,等等-因此它是您的“实现”的一部分-例如,我们将它放在执行根目录中,因此我们只有
      javaagent:jacocoagent.jar
  • 您需要调整日志输出
    destfile=/tmp/jacoco.exec

    由于这是一条绝对路径,它将始终在那里生成输出,我不确定您是否可以在jenkins作业中从那里访问它

    • [解决方案A]您将destfile设置为相对的,如
      /build/jacoco.exec
      ,这样您就可以在jenkins上的工作区中找到它
    • [解决方案B]您只需不提供此字段,它将被命名为jacoco.exec,并将位于执行文件夹中
  • 您需要根据提供此文件的路径

  • 我希望我能帮上忙