無効なターゲットリリース:1.7


121

同様の質問を見ましたが、まだ答えが見つかりません。

Mavenコンパイルを使用すると、次のようになります。

[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]

これが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バージョン:

javac 1.7.0_25

Javaバージョン:

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)

それが何であるか考えていますか?


14
最も可能性の高いmavenはJava 6を使用して実行されている
Peter Lawrey

3
すべての環境変数をチェックして、Java 6が使用されているかどうかを確認します。たとえば、Java 7がパス上にある可能性がありますが、JAVA_HOMEまたはそのようなものを使用したmavenを覚えています。
Peter Lawrey 2013年

36
を実行しmvn -versionます。使用しているJavaがわかります。
JB Nizet 2013年

あなたは正しい、mvnはJava 1.6を使用しています-これをどのように変更できますか?
Karan

1
JAVA_HOME変数をJDK7ホームディレクトリに設定します。
JB Nizet 2013年

回答:


159

JAVA_HOMEをjdk7ホームディレクトリに設定する必要があります(Microsoft Windowsなど)。

  • 「C:\ Program Files \ Java \ jdk1.7.0_40」

またはOS Xの場合:

  • /ライブラリ/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home

71
jdk6とjdk7がインストールされているMacでは、これは〜/ .profileで強制できます:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
Hank

3
jdk8は、jdk7コンプライアンスを取得するためにも使用できます
Wolfgang Fahl

3
Macで〜/ .profileをリロードすることを忘れないでください:source ~/.profile
Caio Iglesias

これはおそらく多くのことで機能しますが、Mavenには十分ではなく、Mavenコンパイラプラグインには十分ではありません。ここで自分の質問に対するマイクの答えをチェック:stackoverflowの質問24705877これは私のために、両方のコマンドラインを問題を解決し、Eclipse内。また、@ LinGaoがstackoverflowの質問 2503658に回答し、$ JAVACMD変数を使用すると役立つ場合があります。
Litome、2015年

42

JAVA_HOME環境変数を設定する以外に、Maven実行構成で正しいJDKを使用していることを確認する必要があります。移動実行 - > 実行構成、あなたのMavenのビルド構成を選択し、JRE]タブに移動し、正しいランタイムJREを設定します。

Maven実行構成


+1、何かを更新するのを忘れていることはわかっていました...構成を作成するときのデフォルトのオプション(私にとって)は「代替JRE」でした。他の誰かがこれに遭遇した場合、あなたのmavenプラグインと設定が適切に更新されていることを確認してください!
king14nyr 2014

私はJava 8に適切なJAVA_HOMEを持っていましたが、それでもまだ足りませんでした。あなたは私の問題を解決しました、ありがとう
dtortola 2016

3

IntelliJ IDEAでは、Java 1.7で正常に動作して実行されていたプロジェクトをインポートしたときに、これが起こりました。どうやら、Java 1.7が私のマシンにインストールされていることをIntelliJに通知していなかったようです。$JAVA_HOME

Macでは、これは次の方法で解決されます。

モジュールを右クリック| モジュール設定| 事業

プロジェクトSDKで[新規]を選択して、1.7 SDKを追加します。

次に、メインのIntelliJ IDEAメニューに移動します| 設定| Maven | ランナー

正しいJREを選択します。私の場合、それは正しくアップデートされましたProject SDKを使用してください。


少なくともMacにはIntellijのプロジェクト設定とプリファレンスがあることに注意してください。設定-> Build Exec、デプロイ-> Javaコンパイラに移動し、必要に応じてプロジェクトのバイトコードバージョンを設定する必要がありました。
Opentuned、2015年

1

MavenがEclipseの外部で動作しているが、JDKの変更後にこのエラーが発生する場合は、Maven実行構成に移動し、メインページの下部に「Mavenランタイム」オプションがあります。MineはEmbedded Mavenを使用していたため、外部Mavenを使用するように切り替えた後、動作しました。


Maven実行構成はどこにありますか?
R Claven、2015年

1
build.xmlを右クリックし、[別のユーザーとして実行]に移動すると、[構成の実行]が最後のオプションになります。実行構成のタイプをスクロールすると、1つは「Mavenビルド」で、「Mavenランタイム」を選択するオプションがあります。その横に「構成」ボタンがあります
djb

0

これはおそらく多くの場合に機能しますが、Mavenでは十分ではなく、Mavenコンパイラプラグインでは十分ではありません。

ここで彼自身の質問に対するマイクの回答を確認してください: stackoverflow質問24705877

これにより、コマンドラインとEclipse内の両方で問題が解決しました。

また、stackoverflowの質問 2503658に対する@LinGaoの回答と$ JAVACMD変数の使用は役立つかもしれませんが、私はそれを自分でテストしていません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.