2017-10-26 2 views
0

Maven을 사용하여 JAR을 빌드합니다. JAR을 확인하면 META-INF 폴더 안에 maven 폴더가 있습니다. 나는 그것이 빌드에서 제외되기를 원한다. pom.xml 나의 현재 빌드의 코드는 다음과 같습니다Maven : JAR에서 "META-INF/maven"폴더를 제외하십시오

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <addClasspath>true</addClasspath> 
         <classpathPrefix>Libraries</classpathPrefix> 
         <mainClass>com.company.Main</mainClass> 
        </manifest> 
        <manifestEntries> 
         <Built-By>Me</Built-By> 
        </manifestEntries> 
       </archive> 
       <!-- <excludes> 
        <exclude>META-INF/maven/**</exclude> 
       </excludes> --> 
      </configuration> 
     </plugin> 
     <!-- ...more plugins... --> 
    </plugins> 
</build> 

은 내가 exclude 태그를 사용하여 당신이 뭔가를 제외 할 수 있음을 읽을 수 있지만 작동하지 않습니다. 어쩌면 이것은 로컬 파일/폴더만을 참조 할 수 있습니까? maven 폴더는 출처의 일부가 아니며 단지 Maven에 의해 추가되었습니다.

This 답변 종류는 다르지만 다른 인공물을 사용하므로 pom.xml에 붙여 넣을 때 두 번째 JAR이 생성됩니다. 현재 빌드 코드를 사용하고 위에서 설명한 maven 폴더를 제외하고 싶습니다. 빌드 규칙을 maven 사용하여 어떻게 수행 할 수 있습니까?

답변

1

maven-jar-plugin은 포장을 처리하기 위해 maven-archiver을 사용합니다. 구성은 addMavenDescriptor이며 기본값은 true입니다. false으로 설정하면 META-INF/maven 디렉토리가 제거되어야합니다.

... 
<archive> 
    <addMavenDescriptor>false</addMavenDescriptor> 
    .... 
</archive> 

참조 번호 here을 찾을 수 있습니다.