當我儀器我的類中使用命令如何更改Maven 2/Cobertura儀器目標的默認輸出?
MVN的Cobertura使用Maven 2:儀器
輸出信號(在儀器類)放入\目標\產生類。有沒有辦法將輸出位置更改爲\ target \ classes?
我檢查了cobertura-maven插件的工具任務,但是這並沒有給我一個解決方案。
當我儀器我的類中使用命令如何更改Maven 2/Cobertura儀器目標的默認輸出?
MVN的Cobertura使用Maven 2:儀器
輸出信號(在儀器類)放入\目標\產生類。有沒有辦法將輸出位置更改爲\ target \ classes?
我檢查了cobertura-maven插件的工具任務,但是這並沒有給我一個解決方案。
據我所知,只有cobertura需要儀表類才能生成報告。如果您在target/classes
中創建它們,它們將覆蓋原始類文件。
如果你需要在一個罐子裏,結果受檢測的文件,您可以配置maven-jar-plugin
從target/generated-classes
目錄拿起文件,而不是或除了將文件從標準${build.project.outputDirectory}
。
編輯
看一看的maven-jar-plugin description。只使用target/generated-classes
,下面除了你的POM應該工作 - 嘗試一下,將它修改爲您的需求:
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3</version> <!-- replace with correct version nbr! -->
<configuration>
<includes>
<include>${project.build.directory}/generated-classes/**/*.class</include>
</includes>
<excludes>
<exclude>${project.build.directory}/classes/**/*.class</include>
</excludes>
</configuration>
</plugin>
...
</plugins>
</build>
...
</project>
${project.build.directory}
點到目標文件夾,${project.build.ouputDirectory}
目標/班。我不知道你是否可以簡單地設置${project.build.ouputDirectory}
到一個新的價值 - 看看在this chapter of the maven book,也許你會發現一些線索
編輯2
Alternativly或另外你可以使用Maven來複制文件在coberture:instrument
完成後,從目標/生成類到目標/類。 This question有一個示例POM(片段)的答案,你只需要確定正確的階段(過程資源對你的情況肯定爲時過早)
我剛剛實施了Andreas_D提出的解決方案,修改了我的pom並使用maven-resources-plugin。所以在構建的某個階段,Cobertura生成的文件被複制到/ target/classes目錄。
可以使用<classesDirectory>[Your DIR]</classesDirectory>
在的Cobertura,Maven的插件2.4版本仍然不支持對其進行配置。我剛剛創建了一個improvement ticket,補丁已附加到票證上。
您還沒有說過爲什麼要覆蓋默認位置,但我認爲這樣可以使用來自其他項目的插裝類,或者也可以將它們包含在Web存檔或類似的東西中。
添加以下到我的pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>instrumented-classes</id>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
<configuration>
<classifier>instrumented</classifier>
<classesDirectory>${project.build.directory}/generated-classes/cobertura</classesDirectory>
</configuration>
</execution>
</executions>
</plugin>
這使得行家生成一個名爲項目名稱,儀表附加jar文件。罐子
然後可以依靠這個jar文件從任何其他POM(包括例如web模塊)使用
<depends>
<group>mygroup</group>
<project>projectname</project>
<version>1</version>
<classifier>instrumented</classifier>
</depends>
我沒有測試這個100%,但在過去使用類似的機制
你試過「mvn cobertura:instrument install」嗎?它將生成一個包含所有cobertura版本類的jar文件。 如果您想更改原始版本,只需運行不帶「cobertura:instrument」的命令。
帕斯卡。你有沒有找到一個這樣的獨奏,可以在classes文件夾中生成插裝的類,並且進一步被m2eclipse發佈到tomcat? – sfk 2011-08-31 16:23:35