Intellij idea 如何更改IntelliJ中所有模块的语言级别

Intellij idea 如何更改IntelliJ中所有模块的语言级别,intellij-idea,Intellij Idea,我有一个有很多模块的项目。我们正在升级到Java7,我希望我的编辑器能够反映这一点。现在,我所有的模块都专门将语言级别设置为Java6,并且有太多的模块让我无法更改每个模块的设置。如何将所有模块设置为Java7?更好的是,如何设置所有模块以使用项目的语言级别?在IntelliJ IDEA 14.0中,转到文件|项目结构|模块Ctrl+Shift+Alt+s 模块列表支持多种选择,因此 按住Ctrl键并单击各个模块 按住Shift键并单击模块范围 Ctrl-A所有模块 在下拉菜单中选择语言级别,然

我有一个有很多模块的项目。我们正在升级到Java7,我希望我的编辑器能够反映这一点。现在,我所有的模块都专门将语言级别设置为Java6,并且有太多的模块让我无法更改每个模块的设置。如何将所有模块设置为Java7?更好的是,如何设置所有模块以使用项目的语言级别?

在IntelliJ IDEA 14.0中,转到文件|项目结构|模块Ctrl+Shift+Alt+s

模块列表支持多种选择,因此

按住Ctrl键并单击各个模块 按住Shift键并单击模块范围 Ctrl-A所有模块 在下拉菜单中选择语言级别,然后手动选择该级别或使用项目语言级别

类似地,要更改项目的语言级别,请在“项目设置”下左侧功能区中选择“项目”。下拉菜单可用于项目语言级别。选择所需的级别。这将为所有项目模块设置默认值

来源
正如在对另一个答案的评论中指出的那样,解决方案不适用于所有模块的目标版本的更改

另外,请注意,为项目设置目标级别是可以的,但是此目标版本被模块中指定的版本覆盖

如果你和我一样不走运,需要在一个100多个模块的Java巨石上工作,那么一个接一个地更改模块将是一件痛苦的事情

我的解决方案很烦人,但可以在LINUX下工作。我假设在本例中,您希望将表格1.5更新为1.8

步骤1您必须进入.idea文件夹并查找compiler.xml文件

替换标记中的所有目标值,例如

步骤2进入项目文件夹并运行以下脚本

find . -type f -name "*.iml" -print0 | xargs -0 sed -i "s/JDK_1_5/JDK_1_8/g"

要将模块中的所有语言级别替换为JDK8兼容。

其他解决方案对我不起作用,即使手动修改了compiler.xml和所有.iml文件,语言级别仍然设置为JDK_1_5。这是由maven编译器插件的配置选项引起的

将其更改为以下选项可以修复它:

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
</plugins>

希望这也能为其他人解决问题。

这不是一个真正的答案,但我在maven编译器插件的配置中更改了编译器版本,并重新导入了该项目。那似乎奏效了。谢谢。这很有帮助,只是选择多个模块似乎不允许您同时更改所有模块的语言级别。我必须选择每个单独的模块,然后才能将其语言级别设置为Project Default,这正是我想要的。只有当所有选定的模块具有相同的语言级别时,多重选择才有效-如果语言级别混合,则设置语言级别无效。看起来像是一个bug。IntelliJ 2017.3.2中的Multi-select对我不起作用,即使在确保所有模块都具有相同的语言级别开始时也是如此。@shoosha Multi-select不起作用。它只是更改了第一个模块的值。@gaurav在选择ccpizza评论的模块时,您可能需要查看语言级别。作为旁注,您可能需要重新创建项目。但有时,与项目运行配置文件、数据库连接等相关的信息太多,您希望避免删除这些信息,并从Scratch中重新创建这些信息。如果您使用mac,请注意出现故障的sed-我明白了-您必须使用find-输入f-name*.iml-print0 | xargs-0 sed-i s/JDK_1_5/JDK_1_8/g@是的,我在LINUX上。我在答复中具体说明了这一点。请随时更新它以添加macusercase@JeanValjean模块语言仍然设置为5。好的研究!谢谢你,非常感谢。我一整天都在1.8级的水平上努力工作。我添加了上面的插件,突然我的代码库出现了编译错误。Intellij的这一特性非常糟糕。事实上,格拉德尔也发生了同样的事情,但谢天谢地,你的脸上也出现了这样的场景。深夜,有最后期限,有这样一个解决方案是一件幸事。再次感谢。
find . -type f -name "*.iml" -print0 | xargs -0 sed -i "s/JDK_1_5/JDK_1_8/g"
<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
</plugins>