Maven의 기본 라이프사이클에서 compile 시기에 실행되는 compiler 플러그인은 별도 설정이 없을 경우, 자바 1.3 버전 기준으로 컴파일 할 소스 코드를 파싱하고 자바 1.1 버전에 호환되도록 클래스 파일을 생성한다. 따라서, 제너릭(generic)이나 어노테이션(annotation)과 같이 자바 5 이상 버전에서만 유효한 문법이 코드에 포함되어 있을 경우 컴파일 과정에서 문법 에러가 발생하게 된다.



maven-compiler-plugin 설정하기

Maven이 기본적으로 사용하는 소스 및 생성 클래스의 자바 버전을 변경하려면 pom.xml 파일에서 maven-compiler-plugin의 <configuration> 영역에서 <source>와 <target>을 이용해서 소스 코드 및 생성 대상 자바 버전을 지정할 수 있다. 아래 코드는 설정 예를 보여주고 있다.

<project>
    ....
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            ...
        </plugins>
    </build>
</project>

만약 소스 코드의 인코딩이 운영체제의 기본 인코딩과 다르다면 <encoding> 속성을 이용해서 소스 코드의 인코딩을 지정해주면 된다.

위와 같이 maven-compiler-plugin 에서 소스 및 대상 자바 버전을 명시하면 eclipse:eclipse를 이용해서 생성한 이클립스 프로젝트도 설정한 자바 버전을 사용하도록 설정된다.

관련 자료:


출처 - http://javacan.tistory.com/entry/HowToSetJavaVersionOfMavenCompilerPlugin



Posted by linuxism
,