maven compiler source and target

2070 단어 JavaJava

pom.xml 파일 안을 보면 다음과 같은 부분이 있다.

<properties>
	<maven.compiler.source>7</maven.compiler.source>
	<maven.compiler.target>11</maven.compiler.target>
</properties>

이 부분은 무엇을 위한 옵션일까?

maven.compiler.source: 소스파일의 Java 버전(문법)
maven.compiler.target: 컴파일 된 바이트 코드가 실행될 JVM 버전

compoiler source를 위한 간단한 실험을 한 번 해보자.

실험1
다음과 같이 pom.xml에서 source를 8로 맞추어 주었다.

소스파일에서는 Java 8에서부터 도입된 stream과 lambda를 사용하고 있다.

이 상태에서 실행을 하거나 컴파일을 하게 되면 문제 없다.

실험2
다음과 같이 pom.xml에서 source를 7로 낮추었다.

소스파일로 가보면 IDE에서 다음과 같이 오류를 보여준다.

이 상태에서 컴파일은 불가하게 된다.

결론
즉, maven.compiler.source는 컴파일러에게 "나는 소스 파일을 이 버전으로 작성할거야" 라고 알려주는 역할을 하며, compiler는 당연하게도 소스 파일을 해당 버전에서 기대되는 문법과 기능으로 해석하려 할 것이다.

좋은 웹페이지 즐겨찾기