1. 개요

이 빠른 자습서에서는 Maven에서 Java 버전설정하는 방법을 보여줍니다 .

계속 진행하기 전에 Maven의 기본 JDK 버전을 확인할 수 있습니다 . mvn -v 명령을 실행하면 Maven이 실행되는 Java 버전이 표시됩니다.

2. 컴파일러 플러그인 사용

컴파일러 플러그인 에서 원하는 Java 버전을 지정할 수 있습니다  .

2.1. 컴파일러 플러그인

첫 번째 옵션은 컴파일러 플러그인 속성에서 버전을 설정하는 것입니다.

<properties>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
</properties>

Maven 컴파일러는 – target 및 – 소스  버전 에서이 명령을 허용합니다 . Java 8 언어 기능을 사용하려면 – 소스1.8 로 설정해야합니다 .

또한 컴파일 된 클래스가 JVM 1.8과 호환되도록하려면 – target 값이 1.8 이어야합니다 .

둘 다 기본값은 1.6 버전입니다.

또는 컴파일러 플러그인을 직접 구성 할 수 있습니다.

<plugins>
    <plugin>    
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
</plugins>

받는다는 - 컴파일러 플러그인 또한 우리가 넘어 컴파일 과정을보다 효율적으로 제어 가질 수 있도록 추가 구성 특성이 -source-target 버전.

2.2. Java 9 이상

또한 JDK 9 버전부터는 새로운 -release 명령 줄 옵션을 사용할 수 있습니다 . 이 새로운 인수는 주어진 플랫폼 버전의 구현에 대해 링크 할 클래스 파일을 생성하도록 컴파일러를 자동으로 구성합니다.

기본적으로 -source-target 옵션은 교차 컴파일을 보장하지 않습니다.

이는 이전 버전의 플랫폼에서 애플리케이션을 실행할 수 없음을 의미합니다. 또한 이전 Java 버전 용 프로그램을 컴파일하고 실행하려면 -bootclasspath 옵션 도 지정해야합니다 .

올바르게 교차 컴파일하기 위해 새로운  -release 옵션은 -source,  -target 및 -bootclasspath의 세 가지 플래그를 대체합니다 .

예제를 변환 한 후 플러그인 속성에 대해 다음을 선언 할 수 있습니다.

<properties>
    <maven.compiler.release>7</maven.compiler.release>
</properties>

그리고 3.6 버전부터 시작 하는 maven-compiler-plugin의 경우 다음과 같이 작성할 수 있습니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <release>7</release>
    </configuration>
</plugin>

공지 사항 것을 우리는 새로운에서 Java 버전을 추가 할 수 있습니다 <자료> 속성. 이 예에서는 Java 7 용 애플리케이션을 컴파일합니다.

또한 시스템에 JDK 7을 설치할 필요가 없습니다. Java 9에는 새 언어 기능을 JDK 7과 연결하기위한 모든 정보가 이미 포함되어 있습니다.

3. 스프링 부트 사양

Spring Boot 애플리케이션 은 pom.xml  파일 속성 태그 내에 JDK 버전을 지정 합니다.

먼저 spring-boot-starter-parent 를 프로젝트에 부모추가해야합니다  .

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
</parent>

이 상위 POM을 사용하면 기본 플러그인과 Java 버전을 포함한 여러 속성을 구성 할 수 있습니다. 기본적으로 Java 버전은 1.8 입니다.

그러나 java.version 속성 을 지정하여 부모의 기본 버전을 재정의 할 수 있습니다 .

<properties>
    <java.version>1.9</java.version>
</properties>

java.version 속성 을 설정하여 소스 및 대상 Java 버전이 둘 다 1.9 임을 선언합니다 .

무엇보다도이 속성은 Spring Boot Specification이라는 점을 명심해야합니다. 또한 Spring Boot 2.0부터 Java 8이 최소 버전입니다.

이는 이전 JDK 버전에 대해 Spring Boot를 사용하거나 구성 할 수 없음을 의미합니다.

4. 결론

이 빠른 튜토리얼은 Maven 프로젝트에서 Java 버전을 설정하는 가능한 방법을 보여줍니다.

다음은 주요 내용을 요약 한 것입니다.

  • <java.version> 사용 은 Spring Boot 애플리케이션에서만 가능합니다.
  • 간단한 경우에는 maven.compiler.source  및  maven.compiler.target  속성이 가장 적합해야합니다.
  • 마지막으로 컴파일 프로세스를 더 많이 제어하려면 maven-compiler-plugin 구성 설정을 사용하십시오.