我们有一些项目,我们使用 jacoco 来聚合多个模块的代码覆盖率。我们还有一些项目使用 Fabric8 docker-maven-plugin 来运行黑盒测试。但是我们现在第一次想在同一个项目中运行它们。它有点工作,但不是在同一个 Maven 命令中。
我们可以运行 mvn test 然后 jacoco 完美地完成它。我们可以运行 mvn install -Djacoco.skip=true 并且黑盒测试启动必要的 docker-containers 并在它们上运行测试。
但是运行 mvn install 并因此说 blackbox-tests 和 jacoco codecoverage 都应该运行将失败,说 jacoco 没有在中央存储库中找到依赖项(无论如何它们都不应该存在)。
那么,我的问题是,docker-maven-plugin 可以做什么来干扰 jacoco?似乎 docker-maven-plugin 删除了 jacoco 期望存在的东西。
我对 jacoco 的配置是使用带有 localRepositoryPath 的调用程序插件(正如 jacoco 的多模块示例的许多指南一样),它会发生冲突吗?还是 docker-maven-plugin 清理工作区?Se 插件定义如下。
<plugin>
<!-- To run with different Maven versions use -Dinvoker.mavenHome -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>1.5</version>
<configuration>
<skipInvocation>${skipTests}</skipInvocation>
<projectsDirectory>it</projectsDirectory>
<cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
<pomIncludes>
<pomInclude>*/pom.xml</pomInclude>
</pomIncludes>
<postBuildHookScript>verify</postBuildHookScript>
<localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
<goals>
<goal>clean</goal>
<goal>install</goal>
</goals>
<settingsFile>it/settings.xml</settingsFile>
<extraArtifacts>
<extraArtifact>org.jacoco:org.jacoco.agent:0.8.3:jar:runtime</extraArtifact>
</extraArtifacts>
</configuration>
<executions>
<execution>
<goals>
<goal>install</goal>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>