programing

Maven이 Java 11을 사용하지 않음: 오류 메시지 "Fatal error compiling: invalid target release: 11"

newnotes 2023. 4. 5. 22:10
반응형

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/을 사용하는 것입니다.

  1. JDK 11 설치 방법:

    sdk install 11.0.11.hs-adpt
    
    • sdk list java한 JDK
  2. 프로젝트의 메인 디렉토리에 .sdkmanrc 파일을 만듭니다.

    java=11.0.11.hs-adpt
    
  3. 스위치 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 버전을 적절하게 변경해야 합니다.

실행 구성 - 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 명령어를 실행하기 전.

  1. 환경 변수 내부의 경로에서 Java 홈을 확인합니다.Java 설치 디렉토리 아래에 있는 JDK 11을 가리킵니다.

  2. 다음 내부 파일 pom.xml을 확인합니다.

     <properties>
         <java.version>11</java.version>
     </properties>
    
  3. 경로에서 %J에 대한 올바른 항목을 확인하십시오.AVA_HOME% 환경변수 및 명시적으로 JAVA_ 설정홈=C:\tools\java\jdk11

  4. mvn이 Java 버전 11을 덮어쓰지 않아야 합니다.

이 점이 도움이 되었습니다.

11에서 8로 변경, 정상적으로 동작

문제는 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

반응형