7

我有一些项目已经通过 maven 进行站点生成,我想在其中集成 cobertura 报告,但我似乎运行的任何 maven 目标都不会生成本地预览供我查看,其中包括 Cobertura 报告地点。在我将 pom 更改提交到 repo 并生成损坏的站点之前,我想确保它们正确生成。

以下是我添加到 maven poms(父级和模块)中的内容,但是我在运行时看到的站点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>

我应该使用什么 Maven 命令来生成带有 cobertura 报告的站点?或者,我应该(另外)添加什么以使站点生成包含 cobertura 报告?

4

6 回答 6

3

应该做:

mvn site

详细地说,运行mvn a:b会在插件 a 中运行目标 b。说mvn c意味着运行生命周期阶段 c,它运行直到 c 的所有阶段中的所有绑定目标。结果,这将触发更多的事情发生(例如做必要的准备以生成 cobertura 报告)。

于 2009-03-01T07:50:53.983 回答
3

我想出了如何做到这一点。

maven 站点生成插件中的链接生成似乎有很多错误。

我发现让 maven 使用工作模块链接生成站点的本地副本的唯一方法是修改distributionManagement/site标记以指向某个本地目录而不是实际部署目录,然后使用maven site:deploy.

每次尝试使用都会mvn site:stage产生断开的链接。也一样mvn site:run

报告链接与mvn site:run/一起使用,mvn site:stage但到模块的链接不使用。

于 2009-03-11T17:55:03.760 回答
1
mvn site

应该做你正在寻找的东西。您将插件配置为在生命周期的预站点和站点阶段运行,但您随后执行的是站点:运行目标而不是站点。我们正在使用 clover(商业报道工具)做类似的事情,而 mvn site 可以做到这一点。

于 2009-02-27T23:05:37.717 回答
1

根据我的经验,site:stage 模块链接对于多模块构建也不起作用,但 site:deploy 可以。试试这个:

在父 pom 中使用站点 URL 的属性,例如${site.url}. 然后调用这个

mvn clean site site:deploy -Dsite.url=file://`pwd`/target/site-deployed

pwd是一个-nix将替换当前目录的命令。这是因为您使用的 URL 必须是绝对的。

于 2010-10-11T05:12:23.913 回答
0

我们用

mvn site-deploy

这将构建站点并部署它(将其复制到我们配置的位置)。

于 2009-02-27T22:52:19.450 回答
0

mvn site:site应该产生您所追求的,在目标目录中,将有一个站点目录,其中包含与index.html该目录中的链接链接的所有报告。

于 2009-03-01T18:13:53.503 回答