복붙노트

[HADOOP] 내 항아리에 테스트 코드를 포함하도록 Maven 음영 플러그인을 구성하려면 어떻게해야합니까?

HADOOP

내 항아리에 테스트 코드를 포함하도록 Maven 음영 플러그인을 구성하려면 어떻게해야합니까?

모든 프로젝트 종속성이 하나의 jar 파일에 포함되도록 프로젝트를 빌드하기 위해 shade maven 플러그인을 사용합니다 (이렇게하면 Hadoop에서 실행하기가 더 쉬워집니다). 음영은 내 테스트 코드를 기본적으로 제외시키는 것으로 보이는데 이는 이해할 수 있습니다. 클러스터에 대해 통합 테스트를 실행하고 싶기 때문에 다른 프로필을 설정하여이 용도로 별도의 jar 파일을 만들려고합니다. 테스트 코드를 포함하도록이 플러그인을 구성 할 수있는 방법이 있습니까?

해결법

  1. ==============================

    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. ==============================

    2.마지막 몇 가지 대답은 잘 못된 기능에 대한 지저분한 해결 방법입니다. 문제는 여전히 Maven-shade-plugin에 버그가 있다는 것입니다. 그동안 버그를 조사하고 근본 원인을 찾아 패치를 만들었습니다. 이제 아파치의 누군가가 곧 그것을 포함하고 마침내 shadeTestJar 기능이 예상대로 작동 할 수 있기를 바랍니다.

    마지막 몇 가지 대답은 잘 못된 기능에 대한 지저분한 해결 방법입니다. 문제는 여전히 Maven-shade-plugin에 버그가 있다는 것입니다. 그동안 버그를 조사하고 근본 원인을 찾아 패치를 만들었습니다. 이제 아파치의 누군가가 곧 그것을 포함하고 마침내 shadeTestJar 기능이 예상대로 작동 할 수 있기를 바랍니다.

  3. ==============================

    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. ==============================

    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. ==============================

    5.위의 ~ steve-k에 설명 된대로 maven-shade-plugin을 사용하는 것이 맞습니다. 불행히도 shadeTestJar가 작동하지 않아 테스트 JAR이 비어 있기 때문입니다.

    위의 ~ steve-k에 설명 된대로 maven-shade-plugin을 사용하는 것이 맞습니다. 불행히도 shadeTestJar가 작동하지 않아 테스트 JAR이 비어 있기 때문입니다.

  6. 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