Daftar file pom saya
<project>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
...
Namun mvn clean install
, saya mengerti
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:
javac: invalid target release: 1.7
Usage: javac <options> <source files>
/usr/bin/java -version
adalah ( which java
poin di sini)
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
javac
juga menunjuk ke versi Java yang benar
/usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/javac
Di mesin ini, saya menggunakan zsh
( echo $0
pengembalian -zsh
)
Di saya .zshrc
, saya telah mendefinisikan:
33 # HOME
34 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
35 SCALA_HOME=/Library/Scala/current
36 FORGE_HOME=~/tools/forge/
37
38 # PATH
39 PATH="/Library/Frameworks/Python.framework/Versions/3.2/bin:${PATH}"
40 PATH=${PATH}:${JAVA_HOME}/bin
41 PATH=${PATH}:/bin/
42 PATH=${PATH}:/sbin/
43 PATH=${PATH}:/usr/bin/
44 PATH=${PATH}:/usr/sbin/
45 PATH=${PATH}:/opt/local/bin/
46 PATH=${PATH}:/opt/local/sbin/
47 PATH=${PATH}:/usr/local/git/bin
48 PATH=${PATH}:/usr/local/git/sbin
49 PATH=${PATH}:/Applications/Xcode.app/Contents/Developer/usr/bin
50 PATH=${PATH}:${SCALA_HOME}/bin
51 PATH=${PATH}:${FORGE_HOME}/bin
52
53 export PATH
Ketika saya menjalankan mvn clean install --debug
saya melihat bahwa sebenarnya saya menggunakan Java 6
1 Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
2 Maven home: /usr/share/maven
3 Java version: 1.6.0_35, vendor: Apple Inc.
4 Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Di mana itu bisa didefinisikan? Saya memiliki sumber (d) .zshrc saya beberapa kali.
/usr/bin
pertama dalam daftar direktori itu. Cobajavac -version
tanpa menentukan direktori.javac 1.7.0_10
echo $JAVA_HOME
memberitahu Anda?--debug
, itu akan memberi tahu Anda baris perintah yang digunakan untuk menjalankanjavac
(bersama dengan banyak hal lainnya). Apa yang dikatakan?Jawaban:
Periksa
mvn
skrip di instalasi pakar Anda untuk melihat bagaimana ia membangun perintah. Mungkin Anda atau orang lain telah menuliskan kode aJAVA_HOME
di sana dan melupakannya.sumber
mvn
Script adalah tidak kompatibel dengan instalasi OSX saya Oracle JDK 7, dan saya tidak melakukan pengaturan itu (naskah penampilan untuk folder sesuatu yang mewahLibrary/Java/JavaVirtualMachines/CurrentJDK
yang tidak ada bagi saya (apa yang lakukan yang ada adalahjdk1.7.0_25.jdk
bukanCurrentJDK
). Tidak perbaikan yang elegan tapi saya hanya melakukan hardcod pada ekspor dan sekarang berfungsi (PS: maven di OSX sudah/usr/share/maven/bin/mvn
)/usr/local/bin/mvn
coba gunakan versi yang lebih baru dari plugin compiler maven:
juga, menentukan pengkodean file sumber di maven lebih baik dilakukan secara global:
EDIT : Karena jawaban ini masih mendapatkan perhatian saya hanya ingin menunjukkan bahwa nilai-nilai terbaru (per edit terbaru) adalah 3,2 untuk plugin kompiler maven dan 1,8 untuk java, karena pertanyaan tentang mengkompilasi kode 8 java melalui maven terikat untuk segera muncul :-)
sumber
Saya memiliki masalah yang sama dan untuk menyelesaikan ini saya mengikuti artikel blog ini: http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/
tks khusus untuk @mkyong
EDIT: Sekarang saya menggunakan: jEnv + sdkman
sumber
Silakan periksa pom.xml Anda untuk tag di bawah ini
harus menunjukkan versi jdk yang diperlukan
sumber
Anda harus memeriksa versi Maven:
Anda akan menemukan versi Java yang digunakan Maven untuk kompilasi. Anda mungkin perlu mengatur ulang JAVA_HOME jika perlu.
sumber
Saya memiliki masalah yang sama. Saya menemukan bahwa ini karena skrip Maven melihat tautan CurrentJDK di bawah ini dan menemukan 1,6 JDK. Bahkan jika Anda menginstal JDK terbaru, ini tidak diselesaikan. Meskipun Anda bisa mengatur JAVA_HOME di skrip $ HOME / .bash_profile Anda, saya memilih untuk memperbaiki tautan simbolik sebagai berikut:
Perhatikan bahwa CurrentJDK menunjuk pada 1.6.0.jdk
Untuk memperbaikinya saya menjalankan perintah berikut (Anda harus memeriksa versi yang diinstal dan beradaptasi sesuai).
sumber
Diagnostik:
Anda dapat melihat versi java mana yang digunakan Maven dengan menjalankan "mvn --version"
Solusi untuk Debian:
Skrip mvn menetapkan variabel env JAVA_HOME secara internal dengan mencari javac (javac mana). Oleh karena itu, jika Anda memiliki beberapa versi java yang diinstal secara bersamaan, misalnya JDK 6 dan JDK 7 dan menggunakan sistem Alternatif Debian untuk memilih di antara mereka, meskipun Anda mengubah alternatif untuk "java" ke JDK 7, mvn masih akan menggunakan JDK 6. Anda harus mengubah alternatif untuk "javac" juga. Misalnya:
EDIT:
Sebenarnya, solusi yang lebih baik adalah dengan menggunakan pembaruan-java-alternatif (misalnya)
sebagaimana dirinci dalam https://wiki.debian.org/JavaPackage , karena ini akan mengubah semua alternatif untuk berbagai alat Java (ada sekitar selusin).
sumber
Bisakah Anda mencoba plugin yang lebih baru; di situs pakar:
Saya melihat yang berikut ini juga:
sumber
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project divs: Fatal error compiling: invalid target release: 1.7 -
Cobalah untuk mengubah pengaturan Java compiler di Properties di Eclipse-
Goto: Preferences-> Java-> Compiler-> Level Compiler Compliance-> 1.7 Terapkan Ok
Mulai ulang IDE.
Konfirmasikan pengaturan Compiler untuk project- Goto: Project Properties-> Java Compiler-> Hapus centang (Gunakan Kepatuhan dari lingkungan eksekusi 'JavaSE-1.6' di jalur Build java.) Dan pilih 1,7 dari dropdown. (Abaikan jika sudah 1.7)
Mulai ulang IDE.
Jika masih ada masalah - Jalankan masing-masing uji menggunakan perintah di terminal-
sumber
Tidak yakin apa OS yang digunakan di sini, tetapi Anda dapat menghilangkan banyak versi java meluruskan un debian / ubuntu dengan pembaruan-java-alternatif untuk mengatur lebar sistem jvm default.
Untuk mengatur yang baru, gunakan:
Tidak perlu mengatur JAVA_HOME untuk sebagian besar aplikasi.
sumber
klik kanan pada proyek Anda di gerhana dan buka "Jalankan Konfigurasi" .. periksa versi jre di sana. beberapa kali ini tidak akan berubah secara default di gerhana, bahkan setelah mengubah versi di buildpath.
sumber
Untuk kompilasi tertentu yang membutuhkan
/etc/alternatives/java
JVM (non-default ), pertimbangkan awalanmvn
perintah denganJAVA_HOME
seperti ini,Di sini kita asumsikan defaultnya adalah Java 8, sedangkan untuk proyek spesifik yang sedang kita tangani kita membutuhkan Java 7.
sumber
{JAVA_1_4_HOME} / bin / javacyou juga dapat mencoba ...
sumber
Oke, saya baru saja memecahkan masalah ini sendiri. Yang lebih penting adalah JAVA_HOME Anda, jika Anda tidak memiliki versi yang lebih rendah atau tidak sama sekali dibandingkan dengan properti sumber / target dari plugin Maven, Anda akan mendapatkan kesalahan ini.
Pastikan Anda memiliki versi yang bagus di JAVA_HOME Anda dan memasukkannya ke dalam PATH Anda.
sumber
Anda mungkin menentukan versi java yang salah. java -versi (di terminal Anda) untuk memeriksa versi java yang Anda gunakan. Pergi ke maven-compile-plugin untuk versi compiler maven terbaru. Plugin Anda mungkin terlihat seperti ini jika Anda menggunakan java 6 dan versi terbaru dari plugin maven compiler adalah 3.1
sumber
Tidak ada jawaban sebelumnya yang sepenuhnya menyelesaikan kasus penggunaan saya.
Diperlukan untuk menghapus direktori yang sedang dibangun. Bersih. Kemudian instal ulang. Sepertinya masalah izin diam.
sumber
Saya mengalami masalah ini di IntelliJ IDEA 14 hingga saya masuk ke menu File -> Struktur Proyek, mengubah SDK proyek menjadi 1,7 dan level bahasa proyek menjadi 7.
sumber
Saya memiliki masalah ini ketika bekerja dengan gerhana, saya harus mengubah jalur pembangunan proyek sehingga mengacu pada jre 7
sumber