2

프로젝트 폼 Maven 2를 Maven 3으로 포팅했습니다. 일부 플러그인의 버전, 즉 maven-compiler-plugin도 업데이트 할 수있었습니다. 2.1에서 3.0으로, maven-resources-plugin에서 2.6으로 변경되었습니다.maven-compiler-plugin 3.0이 메이븐 아래에서 리소스 폴더를 컴파일하지 않습니다.

나는 같은 자원에서 인터페이스를 가지고 :

public interface Version { 
    public static final String VERSION = "${project.version}"; 
} 

그리고 내 pom.xml 파일에

은 빌드에서, 내가 가진 :이 이전에 작업 한

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

. 그러나 Maven 3 로의 업그레이드 이후 버전을 찾을 수 없기 때문에 컴파일이 실패합니다.

버전을 컴파일하지 않거나 클래스 경로에 포함시키지 않은 것 같습니다.

영향을 줄 수있는 Maven 3 또는 최신 버전의 maven-compiler-plugin이 변경 되었습니까? 문서를 읽는 것으로부터 변경된 사항이 없습니다 ...

+4

어떻게 Maven 2에서 작동 했습니까? 너 어떻게 어땠어? src/main/resources에있는 java 파일이 컴파일되지 않기 때문에. 문제는 왜 그런 것들이 필요한가요? 이물 좌표의 일부인 verison을 가지고 있습니까? – khmarbaise

+0

게시됨에 따라 충분한 정보를 제공하지 않습니다. 어떤 형태의 코드 생성을하고 있지만, 코드를 어떻게 작성하는지는 명확하지 않습니다. (단순히 변환을 사용하여 리소스를 복사하는 것은 불가능하기 때문입니다). 이전 버전과 새로운 버전을 모두'-X'로 실행하여 서로 다른 부분을 확인하는 것이 좋습니다. – parsifal

+0

실제로이 문제는 maven-compiler-plugin 3.0에서 발생합니다. 그것은 2.1 잘 작동합니다. – halfwarp

답변

2

아래와 같이 대상 폴더를 지정해야합니다. 현재 대상 폴더를 보면 아마 거기에 Version.java 파일이있을 것입니다. targetPath를 추가하면 필터링 된 .java 파일이 src/java 폴더에 저장되고 대상 폴더로 컴파일됩니다.

<resource> 
    <directory>src/main/resources</directory> 
    <filtering>true</filtering> 
    <includes> 
     <include>**/*.java</include> 
    </includes> 
    <targetPath>${basedir}/src/main/java/</targetPath> 
</resource> 
+0

그래, 그게 다야. targetPath가 누락되었습니다. 감사! – halfwarp

+0

@halfwarp 즉, maven-compiler-plugin이 아니 었습니다. – khmarbaise