programing

Spring/Spring Boot pom.xml에서 Java 버전을 지정하는 방법

stoneblock 2023. 3. 15. 17:48

Spring/Spring Boot pom.xml에서 Java 버전을 지정하는 방법

Spring(또는 Spring Boot) pom.xml 파일에서 사용되는 버전으로 Java 11을 지정하는 올바른 방법은 무엇입니까?

어떤 ?java.version★★★★★★★★★★★★★★★★★★?

8을 사용합니다.1.8매뉴얼에 나타나 있듯이 Java 9에서는1.9.

이 '11'이 잘 .1.11것 ) ()으로 본 적이 .11「」를 하고 있는 maven-compiler-plugin단, 컴파일러 플러그인을 사용하지 않습니다.

예.

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

제가 읽은 문서나 Java 버전에 관한 블로그 게시물에는 버전 8이나 9밖에 표시되지 않기 때문에 검색해 봤지만 답을 찾을 수 없었습니다.

럼럼뭘 로로? 1.11 그냥 '그냥'일 수도 있어요.11

둘 다 시도해보니 웹 서버가 올바르게 시작되어 컴파일된 것 같습니다(IntelliJ는Information:javac 11.0.2 was used to compile java sources)라고 하는 것은, 라고 하는 것을 수 는 할 수 없지만, 라고 하는 것이, 라고 하는 것은,할 수 .java.version할 수 있습니다를 들어 value로 할 수 입니다.그것은 예를 들어, 로 설정할 수 있기 때문입니다. 100모든 게 잘 풀려요

관련 질문은 Java 11과 호환되는 최소 스프링 버전, OpenJDK 11과 함께 JDK 11Spring 4.3.x마이그레이션한휴지 상태 오류로 인해 스프링 부팅이 실패하지만 실제로는 빛을 발하지 않습니다.

단답:

은 다음과 값을 입니다.<java.version>자바:

  • Java 8 : 1.8 또는 8
  • Java 9 : 9
  • 자바 10 : 10
  • 자바 11 : 11
  • Java 12 : 12
  • .....
  • .....
  • 자바 17 : 17
  • Java 18 : 18
  • Java 19 : 19

따라서 Java 11의 경우 다음과 같습니다.

<properties>
   <java.version>11</java.version>
</properties>

단, Java 11이 "1.11"이 될지는 확실하지 않고 maven-compiler-plugin을 사용할 때 "11"로 지정되는 것을 보았습니다만, 컴파일러 플러그인은 사용하지 않습니다.

도 제, 지, 지, 지, 지, 용, 용, 용, 용, 용, actually, actually, actually, actually, actually, actually, actually, actually actually,maven-compiler-plugin을 사용하다는 Springboot만 합니다.<java.version>으로 변경되는 속성maven-compiler-plugin의 »<source/> ★★★★★★★★★★★★★★★★★」<target/>에서 합니다.<java.version>:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <source>11</source>  <!-- same as <java.version> -->
        <target>11</target>    <!-- same as <java.version> -->
    </configuration>
</plugin>

자세한 답변:

자네를 설득할 세부사항을 원하는 것 같군

마다 부모 입니다.spring-boot-starter-parent 정의로 <java.version>음음음같 뭇매하다

<properties>
    <java.version>1.8</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
</properties>

maven-compiler-plugin 문서에서maven.compiler.source ★★★★★★★★★★★★★★★★★」maven.compiler.target사용자 속성입니다.<source> ★★★★★★★★★★★★★★★★★」<target> parametersconfig 파라미터.속성의 으로 인해 이 두 가지 을 " " " "로 설정합니다.11는, 다음의 설정을 의미합니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <source>11</source>   <!-- maven.compiler.source  -->
        <target>11</target> <!-- maven.compiler.target -->
    </configuration>
</plugin>

에서maven-compiler-plugin 다시 문서,<source>그리고.<target>-source그리고.-targetJava 컴파일러의 인수(javac그런 다음 javac docs에서 이들2개의 인수에 다음 값을 지정할 수 있습니다.

  • 1.6 : Java SE 6 에서는 언어 변경이 도입되지 않았습니다.그러나 이제 소스 파일의 인코딩 오류는 Java Platform Standard Edition의 이전 릴리스에서처럼 경고가 아닌 오류로 보고됩니다.
  • 6 : 1.6의 동의어.
  • 1.7 : 컴파일러는 Java SE 7에서 도입된 기능을 가진 코드를 받아들입니다.
  • 7 : 1.7의 동의어.
  • 1.8 : 컴파일러는 Java SE 8에서 도입된 기능을 가진 코드를 받아들입니다.
  • 8 : 1.8의 동의어.
  • 9 : 컴파일러는 Java SE 9에서 도입된 기능을 가진 코드를 받아들입니다.
  • 10 : 컴파일러는 Java SE 10에서 도입된 기능을 가진 코드를 받아들입니다.
  • 11 : 컴파일러는 Java SE 11에서 도입된 기능을 가진 코드를 받아들입니다.
  • 12 : 컴파일러는 Java SE 12에서 도입된 기능을 가진 코드를 받아들입니다.

이런 이유로,<java.version>로 설정되어야 한다11Java 11의 경우.

그라들 프로젝트의 스프링(또는 스프링 부트)에서 사용할 버전으로 Java 11을 지정하려면 build.gradle 파일에서 sourceCompatibility = '11' 또는 sourceCompatibility = '1.11'을 사용하십시오.

plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
}

apply plugin: 'io.spring.dependency-management'

group = 'au.com.ranuka'
version = '0.0.1-SNAPSHOT'

sourceCompatibility = '11'
//or 
sourceCompatibility = '1.11'

repositories {
   mavenCentral()
}

dependencies {

}

더 많은 사람에게 도움이 될 수 있도록 답변으로 추가합니다.

Java 9 이후 버전은 다음과 같이 지정됩니다.9,10,11, 등등,1.8,1.7기타 등등. 여기 좀 더 읽어주세요.

JDK 버전을 지정하는 방법<release>11</release>정답입니다.와 함께 소개되었습니다.maven-compiler-plugin 3.6이하와 같이, 종래의 방식과 동등합니다.

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
      <source>11</source> -- Using JDK 11 to compile
      <target>11</target> -- Using JDK 11 as target
    </configuration>
  </plugin>
</plugins>

게시물은 사용 시 도움이 될 수 있습니다.maven-compiler-pluginJDK 11을 사용합니다.

컴파일러 버전만 지정하는 경우 POM 파일에서 maven-compiler-plugin을 언급할 필요는 없습니다.대신 이러한 속성을 pom 파일에 추가하십시오.

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

편집: 죄송합니다. maven-compiler-plugin의 3.6 릴리스부터 버전 번호 속성이 변경된 것 같습니다.위의 예는 Java 8 이하에서는 괜찮습니다.Java 9의 경우 다음 속성을 추가합니다.

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

maven에서 java 버전 지정 - 속성과 컴파일러 플러그인의 차이점 질문에 대해 수락된 답변을 확인하십시오.

는 "API"를 합니다.enum★★★★★★에JavaVersion. 이하여 " "를 정의할 수 sourceCompatibility.

sourceCompatibility = JavaVersion.VERSION_11

다음은 몇 가지 상수입니다.

VERSION_1_8 - Java8
VERSION_1_9 - Java9
VERSION_1_10- Java10
VERSION_11 - Java11
VERSION_12 - Java12
VERSION_13 - Java13

언급URL : https://stackoverflow.com/questions/54467287/how-to-specify-java-version-in-spring-spring-boot-pom-xml