Maven이 Java 11을 사용하지 않음: 오류 메시지 "Fatal error compiling: invalid target release: 11"
자바 11로 프로젝트를 컴파일하려고 합니다.
pom.xml에서 Java 8을 Java 버전으로 실행하려고 하면 정상적으로 동작합니다.그러나 Java 11에서 실행하려고 하면 오류가 발생합니다.
치명적인 오류 컴파일: 유효하지 않은 대상 릴리스: 11
환경변수 변경, 경로 갱신, %J 포인팅 등 다양한 방법으로 수정하려고 했습니다.AVA_HOME%에서 Java 11로
컴퓨터에 표시되는 명령 및 결과는 다음과 같습니다.
java -version
echo %JAVA_HOME%
출력:
java version "11.0.8" 2020-07-14 LTS
C:\Program Files\Java\jdk-11.0.8
IntelliJ IDEA를 사용하고 있으며, 이 튜토리얼에서 제안하는 대로 필요한 변경을 가했습니다.
pom.xml 파일은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.2.0</version>
<configuration>
<version>1</version>
<projectId>businessapplication-6963d</projectId>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Maven 버전을 확인하면 Java 버전으로 JDK 1.8이 표시됩니다.
mvn --version
출력:
Java version: 1.8.0_241, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_241\jre
Java 11을 Maven으로 가리키려면 어떻게 해야 하나요?그렇지 않다면 이 문제를 어떻게 해결해야 할까요?이 질문은 유효하지 않은 타깃릴리즈의 중복이라고 생각하지 않습니다.1.7은 이미 스레드에 제공된 솔루션을 구현하고 있기 때문입니다.
프로젝트 빌드 후 오류 발생:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project demo: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
경로 환경 변수는 다음과 같습니다.
C:\Program Files (x86)\Common Files\Intel\Shared Files\cpp\bin\Intel64;
C:\Program Files (x86)\Intel\iCLS Client\;
C:\Program Files\Intel\iCLS Client\;
C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;
C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;
C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\WINDOWS\System32\OpenSSH\;
C:\Delhi 2.0\apache-maven-3.6.1\bin;
C:\Program Files\Java\jdk-11.0.8\bin;C:\Program Files\Intel\WiFi\bin\;
C:\Program Files\Common Files\Intel\WirelessCommon\;
C:\Program Files\Git\cmd;D:\Flutter\flutter\flutter\bin;
C:\Users\Infinity97\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin;
C:\Users\Infinity97\AppData\Local\Microsoft\WindowsApps;
C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.2\bin;
H:\apache-maven-3.6.3\bin;
C:\Program Files\PostgreSQL\12\bin;
C:\Program Files\PostgreSQL\12\lib;
C:\Program Files\Docker Toolbox
너 지금 뭐 하고 있는 것 같은데JAVA_HOME을 설정하다mvn.bat이전 버전의 Java(예: 사용자의 경우 8)를 가리킬 수 있습니다.
set JAVA_HOME=C:\path\to\jdk11메이븐에게 전화하기 전에 첫 번째 회선에 사용해 보세요.
Spring Boot 어플리케이션을 Heroku에 도입하려고 할 때 이 문제가 발생했습니다.
JAVA_HOME은 올바르게 설정되어 있습니다만, 같은 에러가 발생하고 있습니다.
근데 이게 먹혔어요
pom.xml 파일에서 자신의 컨텍스트에 추가 또는 적응합니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
이클립스(OP가 IntelliJ IDEA를 참조하고 있는 것을 알고 있습니다)에 대해서도, 다른 유저도 같은 문제를 안고 있는 경우는, Maven 에 사용되고 있는 JRE 를 확인해 주세요.
- 구성 실행...
- Maven 빌드 구성 선택
- [ JRE ]탭을 클릭하여 POM 파일에 따라 JRE 버전을 선택합니다.
나도 같은 문제에 직면해 있었다.JAVA_ 설정오른쪽 JDK의 HOME 환경변수로 문제를 해결했습니다.
java - version은 올바른 버전을 표시했지만 에코 %JAVA_HOME%가 잘못된 JDK를 가리키고 있습니다.고쳐서 이 문제를 해결했어요.
Java 버전 11과 JAVA_도 같은 문제가 있었습니다.HOME 변수가 설정되었습니다.
Adapt Open에서 다른 Java 벤더로 전환JDK와 Corretto가 해결했습니다.
SDKMAN을 사용하면 다른 Java 버전과 공급업체 간에 쉽고 빠르게 변경할 수 있습니다.(JAVA_)HOME 변수는 SDKMAN에 의해 자동으로 수정됩니다).
SDKMAN 설치 방법:
curl -s "https://get.sdkman.io" | bash
다음으로 단말기에 다음과 같이 입력합니다.
source "$HOME/.sdkman/bin/sdkman-init.sh"
인스톨이 성공했는지 확인하려면 , 다음의 순서에 따릅니다.
sdk version
Java 11 설치:
sdk install java 11.0.13.8.1-amzn
sdk default java 11.0.13.8.1-amzn
버전, 런타임 및 벤더를 확인하려면:
java --version
mvn -v
가장 빠르고 쉬운 방법은 SDKMAN https://sdkman.io/을 사용하는 것입니다.
JDK 11 설치 방법:
sdk install 11.0.11.hs-adptsdk list java한 JDK
프로젝트의 메인 디렉토리에 .sdkmanrc 파일을 만듭니다.
java=11.0.11.hs-adpt스위치 JDK
sdk env【JDK】JDK.버전으로 파일jdk' sdkman' sdkman' sdkman' sdkman' sdkman' sdk' sdkman' sdkman' sdk' sdk')에서 .
~/.sdkman/etc/config)sdkman_auto_env=true
또한 Eclipse IDE의 Run As --> Run Configurations --> JRE 탭에서 JRE 버전을 적절하게 변경해야 합니다.
첫 번째 실행
/usr/libexec/java_home -V
가능한 모든 JAVA_가 나열됩니다.사용의 머신으로 홈 패스가 가능합니다.
두 가지 옵션이 있습니다.
선 추가(프로젝트 영구)
JAVA_HOME="/path/to/obtained/from/command/lib"
maven.bat 파일에서 첫 번째 코멘트 직후가 이상적입니다.
달려.
export JAVA_HOME=/path/to/obtained/from/command/lib
mvnw 명령어를 실행하기 전.
환경 변수 내부의 경로에서 Java 홈을 확인합니다.Java 설치 디렉토리 아래에 있는 JDK 11을 가리킵니다.
다음 내부 파일 pom.xml을 확인합니다.
<properties> <java.version>11</java.version> </properties>경로에서 %J에 대한 올바른 항목을 확인하십시오.AVA_HOME% 환경변수 및 명시적으로 JAVA_ 설정홈=C:\tools\java\jdk11
mvn이 Java 버전 11을 덮어쓰지 않아야 합니다.
이 점이 도움이 되었습니다.
문제는 8을 로컬로 사용하고 있는데 pom.xml에서 다른 버전을 가리키고 있다는 것입니다.
이것만 바꿔주세요
<properties>
<java.version>11</java.version>
</properties>
로.
<properties>
<java.version>1.8</java.version>
</properties>
언급URL : https://stackoverflow.com/questions/63154787/maven-is-not-using-java-11-error-message-fatal-error-compiling-invalid-target
'programing' 카테고리의 다른 글
| 다른 프로젝트에서 Spring Boot Jar에 종속성을 추가하려면 어떻게 해야 합니까? (0) | 2023.04.05 |
|---|---|
| Typescript에 있는 객체의 키와 값의 유형 (0) | 2023.04.05 |
| C++: nlohmann json을 사용하여 파일에서 json 개체 읽기 (0) | 2023.04.05 |
| Flutter에서 객체를 json으로 인코딩하는 방법 (0) | 2023.04.05 |
| WordPress를 사용한 Git 워크플로우 - Localhost to Live (0) | 2023.03.31 |

