geçersiz hedef sürüm: 1.7


121

Benzer sorular gördüm, ancak cevabını henüz bulamadım.

Maven derlemesini kullanarak şunu elde ederim:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]

İşte pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

Javac sürümü:

javac 1.7.0_25

Java sürümü:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

Ne olabileceği hakkında fikri olan?


14
Büyük olasılıkla maven Java 6 kullanıyor.
Peter Lawrey

3
Herhangi birinin Java 6 kullanıp kullanmadığını görmek için tüm ortam değişkenlerinizi kontrol ederdim. Örneğin, Java 7 yolunuzda olabilir ama JAVA_HOME veya buna benzer bir şey kullandığını hatırlıyorum.
Peter Lawrey

36
Yürüt mvn -version. Hangi Java'yı kullandığını size söyleyecektir.
JB Nizet

haklısınız, mvn java 1.6 kullanıyor - bunu nasıl değiştirebilirim?
Karan

1
JAVA_HOME değişkenini JDK7 ana dizininize ayarlayın.
JB Nizet

Yanıtlar:


159

JAVA_HOME'u jdk7 ana dizininize ayarlamanız gerekir, örneğin Microsoft Windows'da:

  • "C: \ Program Dosyaları \ Java \ jdk1.7.0_40"

veya OS X'te:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home

71
Jdk6 ve jdk7'nin kurulu olduğu bir Mac'te, bu ~ / .profile içinde zorlanabilir:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
Hank,

3
jdk8, jdk7 uyumluluğunu elde etmek için de kullanılabilir
Wolfgang Fahl

3
Mac'te ~ / .profile'ı yeniden yüklemeyi unutmayın:source ~/.profile
Caio Iglesias

Bu muhtemelen pek çok şey için işe yarıyor ancak Maven için yeterli değil ve kesinlikle maven derleyici eklentisi için değil. Mike'ın kendi sorusuna verdiği yanıtı burada kontrol edin: stackoverflow sorusu 24705877 Bu, benim için hem komut satırı hem de tutulma içinde sorunu çözdü. Ayrıca, 2503658 stackoverflow sorusuna @LinGao yanıtı ve $ JAVACMD değişkeninin kullanılması yardımcı olabilir.
Litome

42

JAVA_HOMEOrtam değişkenini ayarlamak dışında , Maven çalıştırma yapılandırmanızda doğru JDK'yı kullandığınızdan emin olmalısınız. Go Run -> Çalıştır Yapılandırma , sizin Maven'in Yapı yapılandırması seçin JRE sekmesine gidin ve doğru Süre JRE ayarlayın.

Maven çalıştırma yapılandırması


+1, bir şeyi güncellemeyi unuttuğumu biliyordum ... Bir yapılandırma oluştururken varsayılan seçenek (benim için) "Alternatif JRE" idi. Bununla karşılaşan başka biri varsa, maven eklentinizin VE yapılandırmalarınızın doğru şekilde güncellendiğinden emin olun!
king14nyr

Java 8 için doğru JAVA_HOME'a sahiptim ama yine de bu eksikti.
Sorunumu çözdün

3

IntelliJ IDEA'da bu, iyi çalışan ve Java 1.7 ile çalışan bir projeyi içe aktardığımda başıma geldi. Görünüşe göre IntelliJ'e makinemde java 1.7'nin kurulu olduğunu bildirmemiştim ve benim $JAVA_HOME.

Mac'te bu şu şekilde çözülür:

Modüle sağ tıklama | Modül Ayarları | proje

ve Proje SDK'sında "Yeni" yi seçerek 1.7 SDK eklemek.

Ardından ana IntelliJ IDEA menüsüne gidin | Tercihler | Maven | koşucu

ve doğru JRE'yi seçin. Benim durumumda doğru bir şekilde güncellendi, şimdi 1.7 olan Proje SDK'sını kullanın.


En azından Mac'te Intellij için Proje Ayarları ve Tercihleri ​​olduğunu unutmayın, Ayarlar -> Oluşturma Yürütme, Dağıtma -> Java Derleyici'ye gitmem ve ardından proje bayt kodu sürümünü gerektiği gibi ayarlamam gerekiyordu.
Opentuned

1

Maven, Eclipse dışında çalışırken, ancak bir JDK değişikliğinden sonra bu hatayı verdiğinde, Maven Çalıştırma Yapılandırmanıza gidin ve Ana sayfanın altında bir 'Maven Çalışma Zamanı' seçeneği vardır. Benimki Gömülü Maven kullanıyordu, bu yüzden onu harici mavenimi kullanmak için değiştirdikten sonra işe yaradı.


Maven Run Yapılandırması nerede lütfen?
R Claven

1
Build.xml dosyanızı sağ tıklayın, 'Farklı çalıştır'a gidin ve ardından' Yapılandırmayı Çalıştır 'son seçenek olmalıdır. Çalıştırma yapılandırması türlerinde gezinirseniz, bunlardan biri 'Maven Build' ve bu 'Maven Runtime'ı seçme seçeneğine sahip. Yanında bir 'yapılandır' düğmesi var
djb

0

Bu muhtemelen pek çok şey için işe yarıyor ancak Maven için yeterli değil ve kesinlikle maven derleyici eklentisi için değil.

Mike'ın kendi sorusuna verdiği cevabı burada kontrol edin: stackoverflow sorusu 24705877

Bu benim için sorunu hem komut satırı hem de tutulma içinde çözdü.

Ayrıca, 2503658 stackoverflow sorusuna @LinGao yanıtı ve $ JAVACMD değişkeninin kullanımı yardımcı olabilir, ancak ben kendim test etmedim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.