2016-08-08 5 views
3

Maven을 사용하여 Java 프로젝트를 빌드하고 있습니다. CHANGELOGLICENSE 파일을 JAR 파일의 META-INF 디렉토리에 복사하고 있습니다. 파일.Maven : JAR의 META-INF에 파일을 포함합니다.

<build> 
    <resources> 
     <resource> 
      <directory>${project.basedir}</directory> 
      <includes> 
       <include>CHANGELOG</include> 
       <include>LICENSE</include> 
      </includes> 
      <targetPath>META-INF</targetPath> 
     </resource> 
    </resources> 
    <plugins> 
     ... 

하지만 classes/META-INF 디렉토리에 그 또한 사본이 두 파일을 컴파일 할 때 :

지금까지 내가 작업을 알아 낸 다음이다.

그래서 파일을 JAR 파일에 포함시키고 싶습니다. 이것을 할 수있는 방법이 있습니까?

답변

5

필요성을 해결하기 위해 사용자 지정 maven 구성을 지정할 필요가 없습니다.
src/main/resources에 단순히 META-INF 폴더를 만들고 여기에 파일을 저장하십시오.
이렇게하면 빌드 된 JAR의 META-INF 폴더에서 찾을 수 있습니다. 대신 기본 src/main/resources의 프로젝트의 루트에 기본 리소스 폴더를 변경하기 때문에

게다가, 당신은 당신이 pom.xml에서 추가 <resource> 요소를 제거해야합니다.

+0

하지만 결과는 같습니다. 맞습니까? 컴파일 만하면이 리소스 파일도 복사됩니다. 나는 JAR 파일에 복사하기를 원한다. –

+0

Jar에서는 자원이 클래스/META-INF에 중복되지 않기 때문에 실제로는 그렇지 않습니다. 설명 된대로 META-INF 디렉토리에만있게됩니다. – davidxxx

+0

안녕하세요 @ davidxxx. 리소스가 META-INF로 가야 할 때 귀하의 의견을 보았습니다.하지만 META-INF 옆의 jar 파일의 루트에 리소스를 넣을 수 있습니까? 감사. – Cristian