2009-02-27 61 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命令將取代當前目錄。這是因爲您使用的網址必須是絕對的。