2009-02-27 59 views
7

我已经有一些项目已经通过maven做网站生成,并且我想将cobertura报告集成到它们中,但是我似乎没有运行的maven目标会生成本地预览我看看,包括网站上的Cobertura报告。我想确保它们在我将pom更改到repo并破坏网站生成之前正确生成。生成包括Cobertura报告的maven站点

下面是我已经添加到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报告?

回答

3

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

看起来在maven网站生成插件的链接生成中有很多错误。

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

每次尝试使用mvn site:stage都会生成损坏的链接。 mvn site:run也一样。

该报告链接工作与mvn site:run/mvn site:stage但模块的链接不。

+2

您应该将此文件作为maven错误跟踪器中的错误,否则将无法使用。 – 2009-03-12 13:28:32

0

我们使用

mvn site-deploy 

这建立了网站,并部署它(它复制到我们配置的地方)。

+0

但我不想将它部署到其“生产”位置,我首先需要本地预览,因为这仍然是实验性的。 – 2009-02-27 22:56:05

1
mvn site 

应该做你正在寻找的东西。您将插件配置为在生命周期的前站点和站点阶段运行,但是您正在执行站点:运行目标而不是站点。我们正在用三叶草(商业覆盖工具)做类似的事情,而mvn网站也是这样做的。

3

应该做的:

mvn site 

要精心,运行MVN A:B运行在一个插件的目标湾说mvn c意味着运行生命周期阶段c,它运行所有阶段中的所有约束目标直到c。因此,这会引发更多事情发生(比如做必要的准备工作以生成cobertura报告)。

0

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

1

网站:阶段模块链接不工作在我的经验,无论是多模块构建,但网站:部署。试试这个:

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

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

pwd-nix命令将取代当前目录。这是因为您使用的网址必须是绝对的。