스프링 부트:치명적인 오류 컴파일: 잘못된 대상 릴리스: 17
스프링 부트 튜토리얼만 진행하고 4.4.4 단계 실행 중$ mvn spring-boot:run
오류는 다음과 같습니다.
$ mvn spring-boot:run
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< com.example:myproject >------------------------
[INFO] Building myproject 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> spring-boot-maven-plugin:3.0.0-SNAPSHOT:run (default-cli) > test-compile @ myproject >>>
[INFO]
[INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ myproject ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory /Users/dnatochy/development/springboot/testapp1/src/main/resources
[INFO] skip non existing resourceDirectory /Users/dnatochy/development/springboot/testapp1/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ myproject ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /Users/dnatochy/development/springboot/testapp1/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.078 s
[INFO] Finished at: 2022-07-26T21:27:48-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project myproject: Fatal error compiling: invalid target release: 17 -> [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
구글에서 이 오류와 유사한 내용을 찾을 수 있는 모든 것은 메이븐에서 사용하는 자바 버전의 불일치를 가리키지만, 그렇지 않습니다.
$ java -version
java version "1.8.0_333"
Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
$ javac -version
javac 1.8.0_333
$ mvn -v
Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)
Maven home: /Users/myuser/tools/apache-maven-3.8.6
Java version: 1.8.0_333, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "12.4", arch: "x86_64", family: "mac"
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_333.jdk/Contents/Home
JAVA_HOME에서 어떤 Java 버전이 구성되어 있는지 확인해야 합니다.사용:mvn -version
당신은 이것과 같은 것을 봐야 합니다.mvn
산출량
$ mvn -version
Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: path\apache-maven-3.8.5
Java version: 17.0.3.1, vendor: Oracle Corporation, runtime: path\Java\jdk-17.0.3.1
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
또한 이 게시물을 따라 더 많은 솔루션을 확인할 수 있습니다.https://mkyong.com/maven/maven-error-invalid-target-release-17/
pom.xml로 돌아가서 Java 버전을 에서 찾을 수 있는 버전으로 변경합니다.mvn -v
.
Maven이 대상과 동일하거나 최신 버전의 JAVA를 사용하고 있는지 확인합니다.
- JAVA_HOME을 설치한 최신 Java로 업데이트합니다.
- VSCode를 사용하는 경우에도 이전 터미널 닫기
- 를 열고 실행합니다.
mvn -version
명령. "runtime:"이 새 JAVA 경로를 가리키는지 확인합니다.
저의 경우, 이 문제는 제 컴퓨터에 있는 Java 버전이 낮았기 때문입니다.저는 자바 17에 있었고 자바 18로 업데이트를 했고 저를 위해 같은 설정을 했습니다.
@1615903이 지적했듯이 저는 자바 17이 필요했습니다.설치 후 컴파일 오류가 발생하기 시작했습니다.
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/myuser/development/springboot/testapp1/src/main/java/MyApplication.java:[1,2] cannot find symbol
symbol: class RestController
[ERROR] /Users/myuser/development/springboot/testapp1/src/main/java/MyApplication.java:[2,2] cannot find symbol
symbol: class EnableAutoConfiguration
[ERROR] /Users/myuser/development/springboot/testapp1/src/main/java/MyApplication.java:[5,10] cannot find symbol
symbol: class RequestMapping
location: class MyApplication
[ERROR] /Users/myuser/development/springboot/testapp1/src/main/java/MyApplication.java:[11,17] cannot find symbol
symbol: variable SpringApplication
MyApplication.java에 가져오기 문을 추가한 후 앱이 컴파일되어 실행되었습니다.
import org.springframework.web.bind.annotation.RestController;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.web.bind.annotation.RequestMapping;
maven-delay-delay의 <target> 및 <configuration>에서 <source>에서 17을 설정할 수 있습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
OR
<속성>의 maven-discovery-source(및 대상)에 17을 설정합니다.
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
그런 다음 JAVA_HOME에서 jdk 17을 설정해야 합니다(mvn -v 명령으로 확인할 수 있습니다).
참고: (예를 들어) jdk-11을 사용하여 낮은 Java 버전으로 프로젝트를 컴파일할 수 있지만 Java 11을 사용하여 프로젝트를 컴파일하려면 jdk-11 이상을 설정해야 합니다.
제가 한 일은 다음과 같습니다.
- 명령어를 사용하여 Java 17 홈을 찾았습니다.
/usr/libexec/java_home
결과:
/Library/Java/Java 가상 시스템/temurin-17.jdk/콘텐츠/홈
- 확인된 mvn 파일:
vi ~/.mavenrc
JAVA_HOME을 위의 17로 바꿉니다.
참고: 프로젝트를 만드는 동안 대부분의 경우 메이븐 버전과 자바 버전을 확인하지 않고 기본적으로 프로젝트를 만듭니다.
1단계: 시스템 cmd -> java --version에서 실행 중인 java 버전을 확인합니다.
2단계: POX.xml 파일의 Java 버전을 Java 8인 경우에 맞게 변경합니다.
<java.version>1.8</java.version>
언급URL : https://stackoverflow.com/questions/73132312/spring-boot-fatal-error-compiling-invalid-target-release-17
'programing' 카테고리의 다른 글
휴대용 코드는 long long을 사용해야 합니까, int64_t를 사용해야 합니까? (0) | 2023.07.07 |
---|---|
Node.js 및 Microsoft SQL Server (0) | 2023.07.07 |
벡터에서 x 값을 사용하여 요소 수 (0) | 2023.07.07 |
파일을 역순으로 읽는 방법은? (0) | 2023.07.07 |
저장 프로시저의 테이블에 있는 복합 기본 키 변수 (0) | 2023.07.07 |