반응형
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>
....
<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를 이용해서 생성한 이클립스 프로젝트도 설정한 자바 버전을 사용하도록 설정된다.
관련 자료:
- maven-compiler-plugin 사이트: http://maven.apache.org/plugins/maven-compiler-plugin/