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 11 및 Spring 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
그리고.-target
Java 컴파일러의 인수(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>
로 설정되어야 한다11
Java 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-plugin
JDK 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
'programing' 카테고리의 다른 글
React를 사용하여 입력값을 올바르게 검증하는 방법.JS? (0) | 2023.03.15 |
---|---|
@WebMvcTest를 사용하여 "최소 1개의 JPA 메타모델이 존재해야 합니다"를 가져옵니다. (0) | 2023.03.15 |
Swagger JSON을 RAML/YAML로 변환 (0) | 2023.03.15 |
JSON을 반환하는 GET 요청은 기본적으로 허용되지 않는 이유는 무엇입니까? (0) | 2023.03.15 |
MongoDB 데이터베이스에 이미지 저장 (0) | 2023.03.15 |