無効なターゲットリリースに投稿されたものと似たような問題:1.7 しかしブログをフォローしても私の問題は未解決です。
目標org.Apache.maven.plugins:maven-compiler-plugin:3.1:プロジェクトhm_appでコンパイル(デフォルト - コンパイル)を実行できませんでした:致命的なエラーコンパイル:無効なターゲットリリース:1.8 - > [ヘルプ1]
この問題に直面したとき、私は をチュートリアル としてフォローしていました。
abt Java & mvn
C:\mvn>echo %Java_HOME%
C:\mvn>echo %JRE_HOME%
C:\mvn>echo %MAVEN_HOME% yields
アウトプット
C:\Program Files\Java\jdk1.7.0_51
C:\Program Files\Java\jre7
C:\Apache-maven-3.0.4
%Java_HOME
をjdk 1.7に設定しましたが、1.8を使ってコンパイルしようとしています。 jdk 1.8をインストールし、あなたの%Java_HOME
がそれを指していることを確認するか、またはターゲットリリースを1.7に削除してください。
無効なターゲットリリース:1.8
ターゲットリリースはjdkバージョンを指します。
値をプラグインに入れます。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
エラーはuseでした:
<source>${Java.version}</source>
<target>${Java.version}</target>
私の場合、Mavenの "Run configuration"は間違ったJRE(1.7)を使っていました。 Run - > Run Configurations - >(Tab)JRE をチェックしてjdk1.8.xにしてください。
私は1.7を指すJDKと1.8を指すJREを持っていたので、問題は解決されました。チェックインコマンド入力を促す
Java -version
そして
javac -version.
両方とも同じでなければなりません。
それをあなたの.profileに入れると、動的にあなたの$Java_HOME
の世話をするでしょう
export Java_HOME=$(/usr/libexec/Java_home)
その後シェルを閉じ、新しいシェルを開いてでテストしてください。
echo $Java_HOME
次のように表示されるはずです。
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
そうでない場合 、起動スクリプト内の他のJava_HOMEの割り当てを削除します。これらのスタートアップスクリプトは.
で始まるので、それらは隠されており、*
ワイルドカードを使用するときには含まれないことに注意してください。ホームディレクトリのすべてのファイルをgrepしたい場合は、次の手順を実行する必要があります。
grep -s Java_HOME ~/.* --exclude=.bash_history
互換性のある1.8 Jarバージョンをビルドしている間に実行環境でJREバージョンを実行コンフィギュレーションから1.8に更新し、RUNを押す、Maven Updateを実行します。
Windowsマシンでは一時的にJavaのバージョンを設定できます。
たとえば、バージョンをJava 8に変更するには、cmd
で次のコマンドを実行します。
set Java_HOME=C:\\...\jdk1.8.0_65
私が直面していた問題は、Eclipseからではなく、PromptコマンドからMavenビルドを作成できたことでした。Eclipseで私にとってうまくいったのは、実行構成を変更せずにJDK内のJREフォルダーを指すことです。標準に従ってのみJDKフォルダ。この解決策はあなたのために同様に働くかもしれませんが、すべてのJavaパスが正しい、そしてJavaとjavacがpom.xmlのターゲットに存在するものと同じバージョンを示している場合に限りこれを試してください。
Eclipse IDEを使用している場合は、[ウィンドウ]メニューから[設定]を選択し、インストールされているJREを検索して、プロジェクトのビルドに必要なJREを選択します。
Camila Macedoが述べたように、compiler-pluginのJavaバージョンを明示的に指定する必要があります。スプリングブートの場合は、次のプロパティで実行できます。
<properties>
<Java.version>1.8</Java.version>
<maven.compiler.release>8</maven.compiler.release>
</properties>
この質問ではDockerについて明確に質問していませんでしたが、1.9をターゲットとしているpom.xmlファイルを持っていたときに同じエラーが発生しました。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.9</maven.compiler.source>
<maven.compiler.target>1.9</maven.compiler.target>
</properties>
...しかしそれからDockerコンテナに対して "maven"を単独で指定してテストを実行しようとしました。
docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven mvn -e test
私にとって、修正は私が必要とした正確なバージョンをターゲットにすることでした。
docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven:3.5.2-jdk-9 mvn test
(あなたは ここでもっと学ぶことができます 。)
私はこの問題がDokkuにデプロイされているという問題に直面しました。何らかの理由でJDK 1.7を選択していました
system.properties
ファイルを作成し、Java.runtime.version=1.8
を設定することで問題は解決しました。 Dokkuは現在Javaバージョン8を使用しています。 HerokuでJDKを選択する
私は前にそれをしなければならなかった...