0

내 프로젝트 용 소스 jar 파일을 생성하고 싶습니다. 따라서 maven-source-plugin을 포함 시켰습니다. 그러나, 나는 또한 자원 필터링 플러그인을 사용하여 프로젝트의 등록 정보 파일에 버전 번호를 설정하고 있습니다. 최종 jar 파일을 생성하면 특성 파일이 필터링되고 버전이 설정됩니다. 그러나 소스 항아리에는 여전히 필터링되지 않은 속성이 있습니다. 소스 플러그인이 리소스 필터링을 호출하기를 원합니다. 어떻게해야합니까?maven 소스에서 필터링 된 리소스 생성 : jar 실행

가 여기 내 pom.xml 파일

<resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 

    <sourceDirectory>src/main/java</sourceDirectory> 
    <testSourceDirectory>src/test/java</testSourceDirectory> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.5.1</version> 
      <configuration> 
       <source>${maven.compiler.source}</source> 
       <target>${maven.compiler.target}</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.5.3</version> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <version>2.7</version> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>attach-sources</id> 
        <goals> 
         <goal>jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.5</version> 
      <configuration> 
       <encoding>UTF-8</encoding> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

을의 (부분)이며, 여기에 내가

version = ${project.version} 

EDIT 대한 명확한

에서 필터링하려는 속성 파일입니다, 내 문제의 근본은이 라이브러리를 사용하여 빌드 된 GWT 프로젝트 인 다른 프로젝트가 있다는 것입니다. GWT 프로젝트의 요구 사항 중 일부는 클라이언트 측 javascript로 컴파일 될 소스 코드도 사용할 수 있어야한다는 것입니다. 따라서이 프로젝트에는 클래스 경로에 컴파일 된 jar와 소스 jar가 모두 들어 있습니다.

그래서 패키지 경로와 이름이 같은 두 개의 등록 정보 파일이 있습니다. 하나는 컴파일 된 jar에 있고 하나는 sources jar에 있습니다.

이 파일을 읽으려고하면 필터링되지 않은 소스 jar에서 속성 파일을 선택하는 것으로 보입니다.

+0

소스 jar 파일에는 아무것도 필터링되지 않고 컴파일되지 않은 프로젝트 원본이 들어 있습니다.이 설정 외에' 및' '는 기본값이기 때문에 이해가되지 않습니다. (구성에 대한 협약). – khmarbaise

+0

@khmarbaise Pom의 중복 된 구성 정보를 지적 해 주셔서 감사합니다. 나는 필터링 된 소스 jar 리소스에 대해 왜 추가 정보를 추가 했는가? 나는 그것이 기술적으로 부정확하다는 것을 이해할 수 있으므로, 나는 실제로 직면 한 문제를 추가했다. –

+0

리소스 생성 단계에서 속성을 대신 필터링하는 방법은 무엇입니까? –

답변

0

일반적으로 maven-source-plugin을 사용합니다. 그러나 해당 문서에서 처리에서 src/main/resources를 제거 할 수없고 동시에 처리주기에 target/classes을 추가 할 수 없다는 것을 알았습니다 (작업을 수행하기 위해 수행해야하는 작업)

따라서, 가장 좋은 방법은 maven-assembly-plugin 설정을 이용하는 것입니다.

+0

불행히도 당분간, 나는 정의 된 좋은 작업 흐름을 얻을 수있을 때까지 간단히 내 등록 정보 파일에 버전 번호를 수동으로 설정하고 있습니다. –