[HADOOP] 내 항아리에 테스트 코드를 포함하도록 Maven 음영 플러그인을 구성하려면 어떻게해야합니까?
HADOOP내 항아리에 테스트 코드를 포함하도록 Maven 음영 플러그인을 구성하려면 어떻게해야합니까?
모든 프로젝트 종속성이 하나의 jar 파일에 포함되도록 프로젝트를 빌드하기 위해 shade maven 플러그인을 사용합니다 (이렇게하면 Hadoop에서 실행하기가 더 쉬워집니다). 음영은 내 테스트 코드를 기본적으로 제외시키는 것으로 보이는데 이는 이해할 수 있습니다. 클러스터에 대해 통합 테스트를 실행하고 싶기 때문에 다른 프로필을 설정하여이 용도로 별도의 jar 파일을 만들려고합니다. 테스트 코드를 포함하도록이 플러그인을 구성 할 수있는 방법이 있습니까?
해결법
-
==============================
1.maven-shade-plugin 버전 2.2에서는 "shadeTestJar"옵션을 추가했습니다 (MSHADE-158 참조). http://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#shadeTestJar
maven-shade-plugin 버전 2.2에서는 "shadeTestJar"옵션을 추가했습니다 (MSHADE-158 참조). http://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html#shadeTestJar
그러나, 나는 이것을 사용하려고 노력하고 그것을 얻을 수 없습니다. 내 플러그인 설정은 다음과 같습니다.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <shadeTestJar>true</shadeTestJar> </configuration> </execution> </executions> </plugin>
"...- tests.jar"파일에는 항목이 없지만 (테스트 클래스가 포함되어 있지는 않지만) 그림자가있는 기본 항아리가 멋지게 보입니다.
또한,이 질문은이 다른 질문과 중복되지만 허용 된 대답은 실제 만족스럽지 않습니다. Maven-shade-plugin으로 작성된 Jar에 테스트 클래스를 포함시키는 방법은 무엇입니까?
-
==============================
2.마지막 몇 가지 대답은 잘 못된 기능에 대한 지저분한 해결 방법입니다. 문제는 여전히 Maven-shade-plugin에 버그가 있다는 것입니다. 그동안 버그를 조사하고 근본 원인을 찾아 패치를 만들었습니다. 이제 아파치의 누군가가 곧 그것을 포함하고 마침내 shadeTestJar 기능이 예상대로 작동 할 수 있기를 바랍니다.
마지막 몇 가지 대답은 잘 못된 기능에 대한 지저분한 해결 방법입니다. 문제는 여전히 Maven-shade-plugin에 버그가 있다는 것입니다. 그동안 버그를 조사하고 근본 원인을 찾아 패치를 만들었습니다. 이제 아파치의 누군가가 곧 그것을 포함하고 마침내 shadeTestJar 기능이 예상대로 작동 할 수 있기를 바랍니다.
-
==============================
3.나는 그것을 추가함으로써 그것을 작동하게 만들었다 :
나는 그것을 추가함으로써 그것을 작동하게 만들었다 :
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.9.1</version> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${project.basedir}/src/test/java/</source> </sources> </configuration> </execution> </executions> </plugin>
-
==============================
4.다음과 같이 테스트 패키지를 포함 시키십시오.
다음과 같이 테스트 패키지를 포함 시키십시오.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.2.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <artifactSet> <includes> <include>org.apache.maven:*</include> </includes> </artifactSet> </configuration> </execution> </executions> </plugin>
-
==============================
5.위의 ~ steve-k에 설명 된대로 maven-shade-plugin을 사용하는 것이 맞습니다. 불행히도 shadeTestJar가 작동하지 않아 테스트 JAR이 비어 있기 때문입니다.
위의 ~ steve-k에 설명 된대로 maven-shade-plugin을 사용하는 것이 맞습니다. 불행히도 shadeTestJar가 작동하지 않아 테스트 JAR이 비어 있기 때문입니다.
from https://stackoverflow.com/questions/5149130/how-can-i-configure-the-maven-shade-plugin-to-include-test-code-in-my-jar by cc-by-sa and MIT license