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


121

이클립스를 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로 변경됩니다. 이 문제를 어떻게 해결할 수 있습니까?

답변:


222

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의 답변을 살펴보고 그에게 찬성 투표 를 제공하는 것을 잊지 마십시오 :)


4
나는 이미 두 번째 방법을했다고 생각하고 코드도 게시했습니다. 당신이 그 코드 변경을 확인하지 마십시오
asdlfkjlkj

1
네. 내가 대답했을 때 당신은 코드를 게시하지 않았습니다. 그래서 내 대답의 첫 번째 부분을 추가하십시오. properties태그입니다. POM에 이미 properties태그 가있는 경우 그 안에 태그를 추가하기 만하면 정상적으로 작동합니다.
Jorge Campos

@asdlfkjlkj 귀하의 이클립스는 임베디드 maven 또는 외부 maven 설치를 사용하고 있습니까? 일식이 JRE 또는 JDK를 가리키는 또 다른 질문입니까? 이것은 모든 차이를 만드는 eclipse + maven에 관한 두 가지 질문입니다.
Jorge Campos

@JorgeCampos-새 질문을 올렸습니다. 그것에 대해 어떤 생각이 있습니까? stackoverflow.com/questions/42855512/...
Aishu

@JorgeCampos maven-complier-plugin추가하려면 어디에서 찾을 수 <build>있습니까? 감사합니다
夢 の の 夢

23

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>

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


1
Java 10 이상에도 해당되며 다중 모듈 Maven 프로젝트에 추가하려는 경우 상위 POM에서만 필요합니다.
mmeany

Java 9 이상에는 --release <version>소스 / 타겟보다 선호되는 새로운 컴파일러 옵션이 있습니다. 이것은 maven-compiler 플러그인의 maven.compiler.release속성 또는 <release>설정 으로 구성 할 수 있습니다 . 참조 : stackoverflow.com/questions/43102787/…
Thomas Taylor

7

이 문제의 근본 원인은 어떤 이유로 든 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이클립스는 속성을 무시하고 기본을 사용했다.

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


1
org.eclipse.jdt.launching.JRE_CONTAINER / org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType / J2SE-1.5 변경하는 방법
aName

"개발자의 어리 석음이 그 이유 중 하나 일 수 있습니다"라고 말하는 것에 대한 반대 투표.
Luke Hutchison

제 경우에는 Maven / Tycho를 사용하여 Eclipse 플러그인을 빌드하고 있으며 위의 기본값은 궁극적으로 MANIFEST.MF 파일에 지정된 실행 환경에서 파생되었습니다. 실행 환경을 JavaSE-1.8로 변경하면 문제가 해결되었습니다.
mat101

3

이 줄을 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> 

귀하의 답변에는 <build> <plugins> ... 여기에 귀하의 답변 ... </ plugins> </ build>가 누락되어있어 사람들에게 더 명확한 답변이됩니다.
Kyle Bridenstine 2018

1

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

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


1

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

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


그래, 아니. Neon을 실행 중이며 작업 공간 설정은 모두 1.8이지만 Maven 프로젝트를 가져 오거나 업데이트 할 때 Eclipse는 J2SE-1.5 사용을 주장합니다.
Antares42

@ Antares42 문제없이 명령 줄에서 빌드 할 수 있습니까? 어떤 m2e 버전을 사용하고 있습니까?
user902383

1
명령 줄 (또는 "Run as-> Maven build ...")을 사용하여 문제없이 빌드 할 수 있습니다. 그러나 "Maven-> Update project"를 수행하자마자 언급 한대로 JRE 라이브러리를 얻고 Eclipse는 프로젝트를 빌드하지 못합니다. 그래도 Maven을 사용하여 빌드 할 수 있습니다. maven.compiler.source위의 답변에서 언급 한대로 속성을 추가하면 모든 것이 잘 작동합니다. 내 m2e 버전은 1.7.1-20161104-1805입니다.
Antares42

1

제 경우 (구 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 참조 ).


0

해당 주제를 Java 11로 업데이트 할 수 있습니다.

내 컴퓨터에 OpenJDK11을 설치했고 앱에서 사용하고 싶었습니다.

Maven으로 프로젝트를 업데이트 할 때 Eclipse가 항상 JRE를 JavaSE-1.5로 변경하기 때문에 문제가 발생했습니다.

말씀하신대로 모든 것을 설정했지만 항상 Java 빌드 경로 "java-11-openjdk.x86_64"에서 Alternante JRE 중 하나로 직접 선택했습니다. 그림과 같이 "실행 환경"에서 JavaSE-10을 선택하여 문제를 해결했습니다 (하지만 두 번 클릭 한 다음 OpenJDK11 버전과 호환되는 JRE로 선택해야합니다). 실행 환경 설정

프로젝트는 그 (그림) 덕분에 Java 11을 사용하지만 pom.xml의 java 버전에 대해 10을 작성하고 프로젝트 패싯에 Java 10을 설정해야합니다.


0

시장에서 이클립스 업데이트 "JAVA 12"를 설치하는 문제를 해결했습니다. 그것은 내 일식이 케플러에서 루나로지나 가게합니다.

그 후 1.8을 표준 JDK로 설정하여 "메이븐 업데이트"문제를 해결할 수있었습니다.


-3

Eclipse를 kepler에서 neon으로 변경 한 다음 Maven-> Update Project로 프로젝트를 업데이트했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.