jacoco-maven-plugin导致网站插件在多模块项目中失败

上次我决定在我的Java项目Maven构建中用JaCoCo插件替换Cobertura插件。

其中一个是具有模块间依赖关系的多模块项目:

*-- pl.chilldev.commons |-- commons-concurrent |-- commons-daemon `-- commons-exception 

问题是, commons-daemon依赖于commons-exception

我有jacoco-maven-plugin配置如下:

   org.jacoco jacoco-maven-plugin 0.7.1.201405082137   jacoco-prepare-agent  prepare-agent    jacoco-report  report     

一切正常,测试运行,但site目标失败:

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.3:site (default-site) on project commons: failed to get report for org.apache.maven.plugins:maven-javadoc-plugin: Failed to execute goal on project commons-daemon: Could not resolve dependencies for project pl.chilldev.commons:commons-daemon:jar:0.0.3-SNAPSHOT: Could not find artifact pl.chilldev.commons:commons-exception:jar:0.0.3-SNAPSHOT -> [Help 1] 

没有jacoco-maven-plugin即使是site目标也一切正常。

管理使其工作。 问题是,默认情况下, prepare-agent目标绑定到initialize阶段,这意味着一切都将使用JaCoCo java代理执行,它可能无法在Maven计算之前解析类路径(我只是假设,我不知道内部) 。

添加:

   org.jacoco jacoco-maven-plugin 0.7.1.201405082137   process-test-classes  prepare-agent     

固定它。

BTW – 也不需要将report目标添加到执行列表中,我认为将其添加到报告插件中更为正确。