2017-02-12 62 views
1

我正在嘗試使用apache-aven爲我的Java/Groovy項目生成代碼覆蓋率報告。附件爲POM文件: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需要被告知在哪裏可以找到我的groovy源碼,但是我找不到一個例子。

回答

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特定的文件夾。

  • 覆蓋的Maven的the source directory

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

    如果該項目是一個純Groovy項目,沒有任何代碼的Java文件,這將是方便。

與任何這兩個變化,運行mvn clean site將產生的Cobertura報告,其中的Groovy源將被正確地找到。