2012-01-21 16 views
2

Sonar最新バージョン2.12にはJacocoプラグインが統合されており、マルチモジュールプロジェクトのコードカバレッジ部分に使用したいと考えています。sonar2.12(Multi Module maven)用のjacocoエージェントを設定してください

私はプロバイダプロジェクトのためのテストケースは、テストプロジェクトであるこの

proj.com.parent 
    proj.com.provider 
    proj,com.test 

のような構造を有しています。コードカバレッジプラグインをjacocoとしてソナーに設定すると、うまく実行されますが、組み合わせられたコードカバーガーはDashBoardに表示されません。私は1つのjacoco.execファイルが問題を解決できるという記事を見ましたが、私はそうすることができません。

私はこのエラーを取得する「クリーンインストールMVN」

<profile> 
     <id>sonar</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <configuration> 
          <argLine>-javaagent:${sonar.jacoco.jar}=destfile=${sonar.jacoco.reportPath}</argLine> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
     <properties> 
      <sonar.jacoco.reportPath>${basedir}/code-coverage/jacoco.exec</sonar.jacoco.reportPath> 
      <sonar.jacoco.jar> C:\sonar-2.12\war\sonar-server\deploy\plugins\jacoco\META-INF\lib\org.jacoco.agent-0.5.3.201107060350.jar</sonar.jacoco.jar> 
     </properties> 

しかし、Mavenのコマンドライン上で以下のように私のポンポンで以下を設定しようとしてい

は見つかりませんでしたC:¥sonar-2.12¥war¥sonar-server¥deploy¥plugins¥jacoco¥META-INF¥lib¥org.jacoco.agent-0.5.3.201107060350.jarのPremain-Classマニフェスト属性 VM 0123の初期化中にエラーが発生しましたエージェントライブラリの初期化に失敗しました:instrument

誰もがこれに関する助けを提供できますか?

答えて

1

おそらく、あなたは値jacocoにsonar.core.codeCoveragePluginプロパティを設定してみる必要があります。 Sonarのデフォルトコードカバレッジツールはまだcoberturaです。 code coverageに関する以下のドキュメントを参照してください。

それが解決しない場合、私は次のリンク(あなたがやろうとしているようにMavenからJacocoを実行します)が見つかりました:あなたが指しているjarファイルではありません

+0

はいマークを、私が行っていましたあなたが提供したリンク上で、まったく同じサイトから詳細を得ました。しかし、私は彼らが使用しているSONARのバージョンを知りませんし、私の問題は実行時にスローされるエラーであり、正確な原因がわかりません。 – fxviking

7

をjar ... winrarを使用してそれを抽出し、その中に別のjarファイルを作成します。 jacocoagent.jarといいますか?jacocoagent.jarを抜き出して を探し、manifest.mfを探して、premainクラスのエントリがあるはずです。

する必要があります。

2

私は同じ問題を抱えていました。 Jacoco agent artifacts at the central repository.

通常のジャーアーチファクトがあり、クラシファイアランタイムのあるジャーがあります。エージェントjarとして使用するには、「ランタイム」成果物が必要です。私は、私だけで、このようにMavenの依存関係のプラグインとJacocoエージェントのランタイムjarファイルをダウンロードするかどう:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>download-jacoco-agent</id> 
      <phase>pre-integration-test</phase> 
      <goals> 
       <goal>copy</goal> 
      </goals> 
      <configuration> 
       <artifactItems> 
        <artifactItem> 
         <groupId>org.jacoco</groupId> 
         <artifactId>org.jacoco.agent</artifactId> 
         <version>0.6.3.201306030806</version> 
         <classifier>runtime</classifier> 
         <outputDirectory>${project.build.directory}</outputDirectory> 
         <destFileName>jacoco-agent.jar</destFileName> 
        </artifactItem> 
       </artifactItems> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

は次に、あなただけの次のコマンドラインオプションを定義する必要があります:

<argLine>-javaagent:${project.build.directory}/jacoco-agent.jar=destfile=${sonar.jacoco.reportPath}</argLine> 
関連する問題