Java 버전은 Maven 업데이트 후 Java 1.5로 자동 변경됩니다.

이클립스를 IDE로 사용하고 있습니다. 프로젝트를 마우스 오른쪽 버튼으로 클릭 한 다음 maven을 클릭하면 Java 버전 변경 사항이 1.5로 업데이트됩니다. 지금까지 수행 한 작업은 다음과 같습니다. 여기에 나열된 모든 단계를 따랐습니다.

http://qussay.com/2013/09/13/solving-dynamic-web-module-3-0-requires-java-1-6-or-newer-in-maven-projects/

  1. “Java 빌드 경로”를 “workspace default jre 1.8.0_25″로 변경했습니다.
  2. 그런 다음 “자바 컴파일러”를 1.8로 변경했습니다.
  3. 그런 다음 “project facets”> java> 1.8을 변경했습니다.
  4. pom.xml 자바 버전이 1.8로 변경되었습니다.
    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.1.3.v20140225</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugin</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

이 모든 후에 “Maven 업데이트”를 클릭하면 Java 버전이 자동으로 1.5로 변경됩니다. 또한 위의 단계에서 처음 두 단계의 버전도 자동으로 1.5로 변경됩니다. 이 문제를 어떻게 해결할 수 있습니까?



답변

pom.xml파일을 열고 다음 행을 추가하십시오.

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

1.8현재 JDK / JRE의 Java 버전은 어디에 있습니까 ? 이를 수행하는 또 다른 방법은 as를 추가하는 것 <build>입니다.maven-compile-plugin

<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version> <!-- or whatever current version -->
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin>
</plugins>
</build>

편집하다

Java 버전 9 이상에서 작동하도록 만드는 방법을 찾고 있다면 여기 @JDelorean의 답변을 살펴보고 그에게 찬성 투표 를 제공하는 것을 잊지 마십시오 🙂


답변

Java 9를 설치할 때 동일한 문제가 발생했습니다. 내 프로젝트는 J2SE-1.5 Execution Environment로 기본 설정됩니다. 이상하게도 Java 9 준수 수준은 이전 버전 인 “1.8”과 같이 참조되지 않고 “9”로 참조됩니다. 따라서 내 속성과 Maven 컴파일러 플러그인 구성을 적절하게 제공해야했습니다.

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

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>9</source>
        <target>9</target>
    </configuration>
</plugin>

이것은 문제를 해결 한 것 같습니다.


답변

이 문제의 근본 원인은 어떤 이유로 든 Eclipse가 pom에서 .classpath 파일을 생성 / 업데이트 할 때 속성에 대한 유효한 값을 확인할 수없는 maven.compiler.source경우 기본적으로 org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5.

@ jorge-campos 가 전문적으로 답변했듯이 해당 속성을 설정하는 방법에는 여러 가지가 있습니다.

그러나 Jorge의 대답은 나를 위해 작동 하지 않는 것 같습니다 . 내 설정은 다음과 같습니다.

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

바로 그거죠. ${java.version}되어 결코 제 (완전히 다른) 속성을 해결하려고하지 javaVersion이클립스는 속성을 무시하고 기본을 사용했다.

어떤 이유로 든 “내가 열었던 부분으로 다시 돌아갑니다 . 개발자의 어리 석음이 그 이유 중 하나 일 수 있습니다.


답변

이 줄을 pom.xml에 추가 한 다음 JRE 시스템 라이브러리-> 속성-> 올바른 실행 환경을 설정하려는 Java 1.8 또는 버전으로 설정합니다.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version> <!-- or whatever current version -->
    <configuration>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin> 

답변

나는이 문제가 있었다. 제 경우에는 Jorge Campos가 위에서 언급 한 <properties> 태그 및 중첩 태그가 잘못된 위치에있었습니다. pom.xml 파일에서 <hostversion>과 <dependencies> 태그 사이에 넣으면이 동작이 중지됩니다.

이 파일의 유효성 검사가 켜져 있으면 Eclipse에서 선택할 수 있습니다.


답변

내 팀 동료 컴퓨터 중 하나에서 비슷한 문제가 발생합니다. 그는 이전 버전의 Eclipse를 사용하고 있었으며 Keppler를 사용하고 있다고 생각합니다. 업데이트 후 프로젝트는 JRE 버전을 1.5로 변경합니다.

Eclipse를 최신 버전으로 간단히 업데이트하면이 문제가 해결됩니다.


답변

제 경우 (구 JBoss Developer Studio)에서 문제는 JRE 환경에 1.8이 포함되지 않았다는 것입니다 (1.7 만). maven-compiler-plugin버전을 1.7 로 전환하고 maven 업데이트 프로젝트를 수행했을 때 Eclipse JRE 시스템 라이브러리를 1.7로 업데이트했습니다.

따라서 해결책은 1.8 이상의 기본 제공 JRE 환경을 포함하는 최신 IDE 버전을 얻거나 수동으로 설치하는 것입니다 ( https://stackoverflow.com/a/35204314 참조 ).