Java 生成包含Cobertura报告的maven站点
我有一些项目已经在通过maven进行站点生成,我想在其中集成cobertura报告,但我运行的maven目标似乎不会生成本地预览,让我查看,其中包括站点中的cobertura报告。在我将pom更改提交到回购协议并生成断开的站点之前,我想确保它们生成的是正确的 下面是我添加到maven poms(父级和模块)中的内容,但是当我运行Java 生成包含Cobertura报告的maven站点,java,maven-2,code-coverage,cobertura,Java,Maven 2,Code Coverage,Cobertura,我有一些项目已经在通过maven进行站点生成,我想在其中集成cobertura报告,但我运行的maven目标似乎不会生成本地预览,让我查看,其中包括站点中的cobertura报告。在我将pom更改提交到回购协议并生成断开的站点之前,我想确保它们生成的是正确的 下面是我添加到maven poms(父级和模块)中的内容,但是当我运行mvn site:run时看到的站点不包括cobertura报告: <project> ... <build> <plugi
mvn site:run
时看到的站点不包括cobertura报告:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<configuration>
<check>
<haltOnFailure>false</haltOnFailure>
<regexes>
<regex>
<pattern>parent-package-name-here.*</pattern>
<branchRate>80</branchRate>
<lineRate>80</lineRate>
</regex>
</regexes>
</check>
<instrumentation>
<includes>
<include>parent-package-name-here/**/*.class</include>
</includes>
</instrumentation>
</configuration>
<executions>
<execution>
<id>clean</id>
<phase>pre-site</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
<execution>
<id>instrument</id>
<phase>site</phase>
<goals>
<goal>instrument</goal>
<goal>cobertura</goal>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
</plugin>
</plugins>
</reporting>
...
</project>
...
org.codehaus.mojo
cobertura maven插件
假的
父包名称在这里*
80
80
此处为父包名称/***.class
清洁的
现场前
清洁的
仪器
网站
仪器
科贝图拉
检查
...
org.codehaus.mojo
cobertura maven插件
...
我应该使用什么maven命令生成带有cobertura报告的站点?或者,为了让站点生成包含cobertura报告,我应该(另外)添加什么
mvn site-deploy
这将构建站点并部署它(将其复制到我们已配置的位置)
你应该做你想做的事。您将插件配置为在生命周期的站点前阶段和站点阶段运行,但随后您将执行站点:运行目标不是站点。我们正在用clover(商业覆盖工具)做类似的事情,mvn网站也做到了这一点。应该做到:
mvn site
更详细地说,运行mvn a:b运行插件a中的目标b。说mvn cmvn c意味着运行生命周期阶段c,它在c之前的所有阶段中运行所有绑定目标。因此,这将引发更多的事情发生(比如做必要的准备以生成cobertura报告)
mvn站点:站点
应该生成您想要的内容,在目标目录中,将有一个站点目录,其中包含与该目录中的index.html
链接的所有报告。我想出了方法
maven站点生成插件中的链接生成似乎有很多bug
我发现让maven生成带有工作模块链接的站点的本地副本的唯一方法是修改distributionManagement/site
标记以指向某个本地目录而不是真正的live deploy目录,然后使用maven site:deploy
每次尝试使用mvn站点:stage
都会生成断开的链接。mvn站点也是如此:运行
报告链接与mvn site:run
/mvn site:stage
一起工作,但模块链接不起作用。根据我的经验,site:stage模块链接也不适用于多模块构建,但site:deploy起作用。试试这个:
在父pom中为站点URL使用属性,例如${site.URL}
。那就叫这个吧
mvn clean site site:deploy -Dsite.url=file://`pwd`/target/site-deployed
pwd
是一个将替换当前目录的-nix
命令。这是因为您使用的URL必须是绝对的。但我不想将其部署到其“生产”位置,我希望先进行本地预览,因为这仍然是实验性的。您应该将其作为bug提交到maven的bug tracker中,否则将无法处理。
mvn clean site site:deploy -Dsite.url=file://`pwd`/target/site-deployed