2012-12-11 2 views
4

프로젝트를 빌드 할 때 maven-shade-plugin을 사용합니다. 그러나 it.there에는 거의 동일한 클래스와 경로가있는 두 개의 jar가 있습니다. same, aspectjweaver.jar 및 aspectjrt.jar, jar 파일을 패키징 할 때 "중복 클래스가 존재합니다 ...."라는 경고 메시지가 나타납니다. 나는 클래스를 재배치하기 위해 "재배치"속성을 사용하려고했지만, 두 항아리에서 클래스를 어떻게 재구성 할 수 있습니까? 다음은 내 Pom.xml의 일부입니다. org.apache.maven.plugins 받는다는 그늘 - 플러그인 당신은 그냥 이런 일이 사용하는 유물 중 하나에서 클래스를 제외한다 1.3.1Maven을 사용하여 클래스 충돌을 피하는 방법

  <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
        <configuration> 

         <filters> 
          <filter> 
           <artifact>org.aspectj:aspectjrt</artifact> 
           <includes> 
            <include>*</include> 
           </includes> 
          </filter> 
         </filters> 
         <relocations> 
          <relocation> 
           <pattern>org.aspectj</pattern> 
           <shadedPattern>hide.org.aspectj</shadedPattern> 
          </relocation> 
         </relocations> 
         <transformers> 
          <transformer 
           implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
           <mainClass>cm.data.DatBoostrap</mainClass> 
          </transformer> 
          <transformer 
           implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
           <resource>META-INF/spring.handlers</resource> 
          </transformer> 
          <transformer 
           implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
           <resource>META-INF/spring.schemas</resource> 
          </transformer> 
         </transformers> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
+0

미안 실수로 인해 을 삭제해야합니다. –

답변

0

:

<configuration> 
<filters> 
    <filter> 
    <artifact>junit:junit</artifact> 
    <includes> 
    <include>junit/framework/**</include> 
    <include>org/junit/**</include> 
    </includes> 
    <excludes> 
    <exclude>org/junit/experimental/**</exclude> 
    <exclude>org/junit/runners/**</exclude> 
    </excludes> 
    </filter> 
    <filter> 
    <artifact>*:*</artifact> 
    <excludes> 
    <exclude>META-INF/*.SF</exclude> 
    <exclude>META-INF/*.DSA</exclude> 
    <exclude>META-INF/*.RSA</exclude> 
    </excludes> 
    </filter> 
</filters> 
</configuration> 
관련 문제