2017-02-12 10 views
1

Java/Groovyプロジェクトのコードカバレッジレポートを作成するためにapache-avenを使用しようとしています。cobertura-maven-pluginがgroovyのソースコードを見つけられない

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.hal_con</groupId> 
    <artifactId>scheduler</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <dependencies> 
    <!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-all --> 
    <dependency> 
     <groupId>org.codehaus.groovy</groupId> 
     <artifactId>groovy-all</artifactId> 
     <version>2.4.8</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/junit/junit --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.12</version> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.gmaven</groupId> 
     <artifactId>gmaven-plugin</artifactId> 
     <version>1.5</version> 
     <configuration> 
      <providerSelection>1.8</providerSelection> 
     </configuration> 
     <executions> 
      <execution> 
      <goals> 
       <goal>compile</goal> 
       <goal>testCompile</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    <reporting> 
    <plugins> 
     <plugin> 
     <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/cobertura-maven-plugin --> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>cobertura-maven-plugin</artifactId> 
     <version>2.7</version> 
     </plugin> 
    </plugins> 
    </reporting> 
</project> 

私は、次の両方試してみた:

どちらの場合も、結果は全く同じです。

com/hal_con/scheduler/FileParser.groovyを見つけることができません。ソースディレクトリを指定しましたか?

私は、maven-cobertura-pluginに、わかりやすいソースを見つける場所を伝える必要があるとわかりますが、例は見つかりません。

答えて

1

Cobertura Mavenプラグインは、ソースの場所をカスタマイズする方法を提供しません。デフォルトでは、Maven標準フォルダ(src/main/java)が検索されます。あなたのGroovyクラスはsrc/main/groovyの中にあるので、それらは見つかりません。

、プロジェクトに応じて、2つのソリューションがあります。

  • build-helper-maven-plugin:add-sourceモジョの助けを借りて、プロジェクトにこれらのソースを追加します。プロジェクトが混合されている場合

    <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>build-helper-maven-plugin</artifactId> 
        <version>3.0.0</version> 
        <executions> 
        <execution> 
         <goals> 
         <goal>add-source</goal> 
         </goals> 
         <configuration> 
         <sources> 
          <source>src/main/groovy</source> 
         </sources> 
         </configuration> 
        </execution> 
        </executions> 
    </plugin> 
    

    これは便利ですJava/Groovyプロジェクトは、Mavenのデフォルトを維持し、Groovy固有のフォルダを追加できるためです。このプロジェクトは、任意のソースJavaファイルなしで、純粋なGroovyプロジェクトである場合、これは便利だろう

    <build> 
        <sourceDirectory>src/main/groovy</sourceDirectory> 
        <!-- rest of build configuration --> 
    </build> 
    

    でのMavenの

  • オーバーライドthe source directory。これら二つの変更のいずれかと

mvn clean siteを実行すると、Groovyのソースが正しく検出されますCoberturaのレポートを生成します。