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
目标添加到执行列表中,我认为将其添加到报告插件中更为正确。