2009-02-27 22 views
7

私はすでにMaven経由でサイト生成を行っているいくつかのプロジェクトを持っていますが、それらにcoberturaレポートを統合したいと思いますが、実行しているようなMavenの目標は、私はそれを見て、サイト内のCoberturaレポートを含みます。リポジトリにpom変更をコミットしてサイトが生成される前に、それらが正しく生成されていることを確認したい。Coberturaレポートを含むMavenサイトの生成

以下

は、私はMavenのPOMS(親とモジュール)に追加したものですが、私はmvn site:runを実行したときに私が見るサイトはCoberturaのレポートが含まれていません:

私は何のmavenコマンドを使用する必要があります
<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> 

coberturaレポートでサイトを生成するには?または、サイトの世代にcoberturaのレポートを含めるには、(追加で)何を追加する必要がありますか?

答えて

3

私はこれを行う方法を理解しました。

mavenサイト生成プラグイン内のリンク生成には多くのバグがあるようです。

実際のライブ展開ディレクトリの代わりにdistributionManagement/siteタグを変更して、maven site:deployを使用すると、mavenがモジュールリンクを使用してサイトのローカルコピーを生成する唯一の方法があります。

いつもmvn site:stageを使用しようとすると壊れたリンクが生成されます。 mvn site:runも同じです。

レポートのリンクはmvn site:run/mvn site:stageとなりますが、モジュールへのリンクは機能しません。

+2

これをMavenのバグトラッカーのバグとして報告する必要があります。そうしないと、それが処理されません。 –

0

我々は

mvn site-deploy 

を使用これは、サイトを構築し、(我々が設定した場所にコピーし)、それを展開しています。

+0

しかし、私はそれを "プロダクション"の場所に展開したくないので、これはまだ実験的なので、まずローカルプレビューが必要です。 –

1
mvn site 

あなたが探しているものを行う必要があります。ライフサイクルのサイト前とサイト段階で実行するようにプラグインを設定しますが、サイト:実行目標ではないサイトを実行しています。我々はクローバー(商業的なカバレッジツール)と同様のことをやっているし、mvnサイトはトリックです。

3

は行う必要があります。

mvn site 

を詳述すると、MVN aを実行している: bのプラグインでゴールbを実行します。 mvn cと言っているのは、ライフサイクルフェーズcを実行することです。ライフサイクルフェーズcは、すべてのフェーズですべてのバインドされた目標をcまで実行します。結果として、これは起こるべきより多くの事柄を引き起こすでしょう(例えば、コベルトゥーラ報告書を作成するために必要な準備をすることなど)。

0

mvn site:siteは、ターゲットディレクトリに、そのディレクトリにindex.htmlとリンクされているすべてのレポートを含むサイトディレクトリが存在します。

1

site:ステージモジュールのリンクは、マルチモジュールビルドでもサイト:deployでも使用できません。これを試してください:

親のpomのサイトURLのプロパティを使用してください(例: ${site.url}。そして、この

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

pwdは、現在のディレクトリに置き換えます-nixコマンドで呼び出します。これは、使用するURLが絶対的でなければならないためです。

関連する問題