Jacoco代码覆盖率在使用Maven在Azure DevOps中构建的多模块项目中存在问题。

huangapple go评论80阅读模式
英文:

Issue with Jacoco code coverage for a multi-module project build in Azure DevOps using Maven

问题

在Azure DevOps的Maven构建流水线中,在构建多模块Java项目时,构建成功了。

然而,Jacoco代码覆盖率出现以下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (default) on project VstsReport: An Ant BuildException has occured: Unable to read execution data file /vsts/agent/_work/8/s/CCReport43F6D5EF/jacoco.exec
2020-01-02T22:17:12.5100407Z [ERROR] around Ant part ...... @ 8:11 in /vsts/agent/_work/8/s/target/antrun/build-main.xml: /vsts/agent/_work/8/s/CCReport43F6D5EF/jacoco.exec (No such file or directory)

Azure管道的YAML文件具有以下任务参数:

task: Maven@3
inputs:
  mavenPomFile: 'pom.xml'
  mavenOptions: '-Xmx3072m'
  javaHomeOption: 'JDKVersion'
  jdkVersionOption: '1.8'
  jdkArchitectureOption: 'x64'
  publishJUnitResults: true
  testResultsFiles: '**/TEST-*.xml'
  goals: 'package'
  options: '--settings settings.xml'
  codeCoverageToolOption: JaCoCo
  codeCoverageSourceDirectories: epubcheck-service/src/main,epubcheck-service/src/test
  codeCoverageClassFilesDirectories: epubcheck-service/target/classes,epubcheck-service/target/test-classes
  sonarQubeRunAnalysis: true

如果我注释掉codeCoverage参数,那么Maven构建任务会成功完成。只有当我在多模块项目上添加codeCoverage参数时,才会出现上述错误。

能否有使用Azure DevOps流水线构建Java Maven项目和Jacoco代码覆盖工具的人帮助我?

英文:

In Azure Devops Maven build pipeline, while building multi-module java project, the build was successful.

However, the Jacoco code coverage is failing with below error:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (default) on project VstsReport: An Ant BuildException has occured: Unable to read execution data file /vsts/agent/_work/8/s/CCReport43F6D5EF/jacoco.exec
2020-01-02T22:17:12.5100407Z [ERROR] around Ant part ...... @ 8:11 in /vsts/agent/_work/8/s/target/antrun/build-main.xml: /vsts/agent/_work/8/s/CCReport43F6D5EF/jacoco.exec (No such file or directory)

Azure pipeline yml file has the following task parameters:

task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
goals: 'package'
options: '--settings settings.xml'
codeCoverageToolOption: JaCoCo
codeCoverageSourceDirectories: epubcheck-service/src/main,epubcheck-service/src/test
codeCoverageClassFilesDirectories: epubcheck-service/target/classes,epubcheck-service/target/test-classes
sonarQubeRunAnalysis: true

If I comment the codeCoverage parameters then the Maven build task completes successfully. Only when I add the codeCoverage parameters on a multi-module project, I am getting the above-mentioned error.

Can somebody who used Azure DevOps pipeline for building Java maven build and Jacoco code coverage tool help me?

答案1

得分: 1

在父项目的pom.xml中包含jacoco-maven-plugin解决了这个问题。以下是摘录:

<plugin>
	<groupId>org.sonarsource.scanner.maven</groupId>
	<artifactId>sonar-maven-plugin</artifactId>
</plugin> 
<plugin>
	<groupId>org.jacoco</groupId>
	<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<configuration>
		<source>1.8</source>
		<target>1.8</target>
	</configuration>
</plugin>
英文:

Including jacoco-maven-plugin in the pom.xml of the parent project resolved it for us. Below is an excerpt:

<plugin>
	<groupId>org.sonarsource.scanner.maven</groupId>
	<artifactId>sonar-maven-plugin</artifactId>
</plugin> 
<plugin>
	<groupId>org.jacoco</groupId>
	<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<configuration>
		<source>1.8</source>
		<target>1.8</target>
	</configuration>
</plugin>

huangapple
  • 本文由 发表于 2020年1月4日 00:52:12
  • 转载请务必保留本文链接:https://go.coder-hub.com/59582337.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定