4

Maven でプロジェクトをコンパイルしようとすると、次のエラーが発生します。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project webserverlog: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project webserverlog: Compilation failure
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

私の JAVA_HOME は JDK を指しています:

$ echo $JAVA_HOME
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home

$ $JAVA_HOME/bin/javac -version
javac 1.7.0_25
javac: no source files
Usage: javac <options> <source files>

Maven が JAVA_HOME の末尾に「/jre」を追加する理由はわかりませんが、他の投稿を見ると、これは問題ではないようです。

$ mvn --version
Apache Maven 3.0.4 (r1232337; 2012-01-17 18:44:56+1000)
Maven home: /Users/jerry/dev/springsource/apache-maven-3.0.4
Java version: 1.7.0_25, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.4", arch: "x86_64", family: "mac"

この問題の解決策を探し、ここ数日間さまざまなことを試しましたが、うまくいくものは見つかりませんでした。同様の問題を抱えたスレッドをいくつか見たことがありますが、どの提案もうまくいきませんでした。

これを解決する方法を知っている人はいますか?どんな助けでも大歓迎です...

4

2 に答える 2

4

CurrentJDK リテラルをそのままにするのではなく、JDK への実際のパスを JAVA_HOME 変数に割り当てる必要があります。Mac OS X の何らかの理由で、CurrentJDK は Maven に関する実際の JDK を指していません。.profile で次のようなことを試してください。ただし、実際の jdk フォルダー名を置き換えてください。

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
于 2013-11-26T10:47:45.187 に答える