나 기기 내 클래스 명령을Maven 2/Cobertura 장비 목표에서 기본 출력을 변경하는 방법은 무엇입니까?
MVN의 cobertura를 사용 메이븐 2를 사용 : 악기
출력 (계측 클래스) \ 대상 \ 생성 클라스에 배치된다. 출력 위치를 \ target \ classes로 변경하는 방법이 있습니까?
나는 cobertura-maven 플러그인의 계측 작업을 확인했으나, 해결책이 없었습니다.
나 기기 내 클래스 명령을Maven 2/Cobertura 장비 목표에서 기본 출력을 변경하는 방법은 무엇입니까?
MVN의 cobertura를 사용 메이븐 2를 사용 : 악기
출력 (계측 클래스) \ 대상 \ 생성 클라스에 배치된다. 출력 위치를 \ target \ classes로 변경하는 방법이 있습니까?
나는 cobertura-maven 플러그인의 계측 작업을 확인했으나, 해결책이 없었습니다.
필자가 이해하는 한, 계측 된 클래스는 보고서 작성을 위해 cobertura에서만 필요합니다. target/classes
에서 생성하면 원본 클래스 파일을 덮어 씁니다. 당신이 결과로 항아리에 계측 파일이 필요하면
, 당신은 maven-jar-plugin
이 또는 표준 ${build.project.outputDirectory}
에서 파일에 추가하는 대신 target/generated-classes
디렉토리에서 파일을 선택하는 구성 할 수 있습니다.
편집은 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}
에/클래스를 대상으로. 어쩌면 당신은 몇 가지 힌트를
편집 2
Alternativly를 찾으 this chapter of the maven book을 살펴하거나 추가로 당신은 파일을 복사 할 받는다는 사용할 수 있습니다 - 당신은 단순히 새로운 값으로 ${project.build.ouputDirectory}
를 설정할 수 있을지 모르겠어요 coberture:instrument
이 완료된 후 target/generated-classes에서 대상/클래스로 변경하십시오. This question에는 POM (조각) 예제와 함께 한 가지 대답이 있습니다. 올바른 단계를 식별해야합니다 (프로세스 리소스가 자신의 경우에 너무 이르다).
방금 Andreas_D에서 제안한 솔루션을 구현하고 내 pom을 수정하고 사용합니다. maven-resources-plugin. 그래서 내 빌드의 어떤 단계에서 Cobertura 생성 파일은/target/classes 디렉토리에 복사됩니다.
당신은 cobertura-받는다는 - 플러그인 버전 2.4에서 <classesDirectory>[Your DIR]</classesDirectory>
이 아직 지원되지 않습니다 사용하여 구성 할 수 있습니다. 방금 improvement ticket을 만들었습니다. 패치가 티켓에 첨부되어 있습니다.
왜 기본 위치를 덮어 쓰겠다 고 말하지는 않았지만 다른 프로젝트의 계측 된 클래스를 사용하거나 웹 아카이브 또는 이와 유사한 것으로 포함시킬 수 있다고 가정했습니다.
나는이 받는다는는 프로젝트 이름 계측라는 추가 jar 파일을 생성하게 내 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>
에 다음을 추가했다.
<depends>
<group>mygroup</group>
<project>projectname</project>
<version>1</version>
<classifier>instrumented</classifier>
</depends>
내가이 100 %를 테스트하지 않았지만 과거에 유사한 메커니즘을 사용하고 사용 (예 : 웹 모듈 포함) 다른 치어에서이 jar 파일에 의존하는 것이 가능하다
항아리
"mvn cobertura : instrument install"을 시도 했습니까? 모든 cobertura 버전 클래스를 포함하는 jar 파일을 생성합니다. 원본 버전을 되돌리려면 "cobertura : instrument"없이 명령을 실행하십시오.
파스칼. 계장 클래스를 클래스 폴더에서 생성하고 m2eclipse에서 선택하여 Tomcat에 게시 할 수 있도록하는 용도로 사용할 수 있습니까? – sfk