IntelliJ IDEA を使用して JUnit テストを実行すると、
どうすればこれを修正できますか?
- SDK 1.7 の使用
- モジュール言語レベルは 1.7
Maven ビルドは正常に動作します。(だから私はIDEA構成の問題でこれを信じています)
IntelliJ IDEA を使用して JUnit テストを実行すると、
どうすればこれを修正できますか?
Maven ビルドは正常に動作します。(だから私はIDEA構成の問題でこれを信じています)
ほとんどの場合、Maven からインポートされたコンパイラ オプションが間違っている可能性があります。
また、スクリーンショットに示されているプロジェクトとモジュールのバイトコード ( target ) のバージョン設定も確認してください。
ソース言語レベルが構成されているその他の場所:
Mavenのデフォルトの言語レベルは1.5 (5.0) です。上のスクリーンショットでは、このバージョンがモジュールの言語レベルとして表示されます。
これは、内部で maven-compiler-pluginpom.xml
構成を使用して変更できます。
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
また
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
Maven プロジェクトツールウィンドウで Maven プロジェクトを再インポートした後、IntelliJ IDEA はこの設定を尊重します。
以下で説明する IntelliJ 13 & 14 と同様ですが、設定/環境設定パネルに追加のレベルがあります: Settings > Build, Execution, Deployment > Compiler > Java Compiler。
IntelliJ 13 および 14 では、[設定] > [コンパイラ] > [Java コンパイラUI] をチェックして、モジュール内の別のバイトコード バージョンをターゲットにしていないことを確認してください。
IntelliJ IDEA 14.1では、「ターゲット バイトコード バージョン」は別の場所にあります。
次の変更は私にとってはうまくいきました:
ファイル > 設定... > ビルド、実行、配置 > コンパイラ > Java コンパイラ:ターゲット バイトコードのバージョンを 1.5 から 1.8 に変更します。
私はこれに遭遇し、修正は Project Settings > Modules > 特定のモジュールをクリック > Dependencies タブに移動することでした。Module SDK がまだ 1.6 に設定されていることに気付きました。それを 1.7 に変更したところ、機能しました。
私の場合、設定>コンパイラ> Javaコンパイラで必要なオプション(「ターゲットバイトコードバージョン」)を見つけました(intelij idea 12.1.3)
次のパスにあるプロジェクトのコンパイラ設定ファイルを変更し、「ターゲット」を 1.7 に変更します。
/project/.idea/compiler.xml
<bytecodeTargetLevel>
<module name="project-name" target="1.7" />
</bytecodeTargetLevel>
フィールドを空白に設定して解決しました:
設定 > コンパイラ > Java コンパイラ > プロジェクトのバイトコード バージョン
IntelliJ よりも JDK のデフォルト バージョンを使用します。
ある瞬間から別の瞬間にも、明確な理由なしにこのエラーが発生しました。コンパイラ/モジュールなどのあらゆる種類の設定を変更しましたが、最終的にMavenプロジェクトを再インポートしてIntelliJプロジェクトを再作成しただけで問題は解決しました。これはバグだと思います。
IntelliJ 12 129.961
IntelliJ IDEA 14 から v14.1 へのマイナー アップグレードの後で、これにヒットしました。私にとっては、トップ/親の pom の編集を変更することが役に立ち、Maven の再インポートをクリックしました (自動でない場合)。
しかし、モジュール/集約/親モジュールを右クリックし、Maven -> 再インポートするだけで十分かもしれません。
以下の方法で解決しました
ファイル >> プロジェクト構造 >> プロジェクト >> プロジェクト言語レベル --> 適切なバージョンを設定してください (例: 1.5)
.idea/misc.xml を確認して、 languageLevel="JDK_1_X" 属性を手動で変更する必要がある場合があります
Gradle プロジェクトの場合は、build.gradle ファイルで次の設定を検索します。
sourceCompatibility = "xx"
targetCompatibility = "xx"
すべてのサブプロジェクトについて、ルートの build.gradle ファイルに次のように記述できます。
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
Idea > Settings で言語レベルを手動で設定できますが、それが Gradle プロジェクトの場合、Idea はモジュール .iml ファイルを Gradle 設定から自動的に同期します (Idea 15 以降でテスト済み)。そのため、gradle が更新されると、すべての手動変更が上書きされます。
Gradle のドキュメントに基づいて、これらが設定されていない場合、現在の JVM 構成が使用されます。