从1.6迁移到1.7后,无法在Jetbrains Intellij中使用Java 1.7进行编译(基于maven的项目)
使用基于Maven项目的Jetbrains 11.2项目。然后,我需要移动到1.7。我安装了1.7,更新了pom.xml,我可以使用maven okay重建整个包 我已经修改了Intelli项目设置中有关Java版本的所有设置从1.6迁移到1.7后,无法在Jetbrains Intellij中使用Java 1.7进行编译(基于maven的项目),java,intellij-idea,javac,Java,Intellij Idea,Javac,使用基于Maven项目的Jetbrains 11.2项目。然后,我需要移动到1.7。我安装了1.7,更新了pom.xml,我可以使用maven okay重建整个包 我已经修改了Intelli项目设置中有关Java版本的所有设置 项目SDk 项目语言级别 模块语言/源代码/语言级别 模块语言/依赖项/模块SDK 但我无法让它编译它抱怨的文件: Error:javac target release of 1.6 conflicts with source release 1.7 然后,我在我的
- 项目SDk
- 项目语言级别
- 模块语言/源代码/语言级别
- 模块语言/依赖项/模块SDK
Error:javac target release of 1.6 conflicts with source release 1.7
然后,我在我的另一台开发机器上尝试使用相同的代码库但不同的Intellij项目,在这台机器上,我得到了一个类似的错误:
Error:javac: source release 1.7 requires target release 1.7
我看不出还有什么需要更改的地方可以让它正常工作。Doh,找到了
文件/设置/Java编译器/其他命令行参数
从目标1.6更改为目标1.7
但是,它与其他相关选项断开连接,似乎在这里很奇怪 作为另一种解决方案,对我有效的方法是签入模块设置
语言级别属性。它被设置为
8.0 Lambdas
,并更改为6.0@Overrides in interfaces
,编译后工作正常。另一个可能的修复方法是确保生成文件具有此处所示的硬编码版本
<javac target="1.7" source="1.7" ... />
相对于
<property name="java.version" value="1.7" />
<javac target="${java.version}" source="${java.version}" ... />
虽然这可能是由于我对构建文件中变量的工作方式的误解。您可能会认为这是有意义的,但对于IntelliJ 12,我通过打开文件:Project Structure并将Project SDK更新为1.7,将Project语言级别更新为“7.0-钻石、ARM、多捕获等”解决了这一问题 如果您没有使用JDK1.7配置IntelliJ,请使用“新建”按钮添加它。选择“JDK”类型。IntelliJ 2017(也是2015或2016) 您可以在此处更改编译器版本:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler
Intellij IDEA -> Preferences -> Compiler -> Java Compiler
-> Project bytecode version -> 1.7 (for example)
现在将目标字节码版本更改为所需版本
IntelliJ 13或14
您可以在此处更改编译器版本:
File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler
Intellij IDEA -> Preferences -> Compiler -> Java Compiler
-> Project bytecode version -> 1.7 (for example)
我遇到了同样的问题。 我通过Intellij IDEA->Preferences->Compiler->Java编译器解决了这个问题
->Project bytecode version->1.7和Target bytecode version->1.7从Maven导入时添加了这些选项。类似问题如下: