【问题标题】:How do I change language level for all modules in IntelliJ如何更改 IntelliJ 中所有模块的语言级别
【发布时间】:2014-03-19 11:17:48
【问题描述】:

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

【问题讨论】:

  • 这不是一个真正的答案,但我已经在我的 maven-compiler-plugin 的配置中更改了编译器版本并重新导入了项目。这似乎奏效了。

标签: intellij-idea


【解决方案1】:

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

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

如果你和我一样不幸,需要处理 100 多个模块的 Java 单体,那么一个一个地更改模块将是一件痛苦的事情。


我的解决方案很“烦人”,但可以在 LINUX 下工作。我在示例中假设您要将表单 1.5 更新为 1.8

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

替换标签<module>中的所有target值,例如

target="1.5" 

target="1.8"

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

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

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

【讨论】:

  • 附带说明,您可能需要重新创建项目。但有时有太多信息连接到项目(运行配置文件、数据库连接等),您希望避免删除它并从头开始重新创建它
  • 如果您使用的是 Mac,请注意失败的 sed -i(请参阅 stackoverflow.com/questions/4247068/…) - 您必须改用 find . -type f -name "*.iml" -print0 | xargs -0 sed -i "" "s/JDK_1_5/JDK_1_8/g"
  • @luk2302 是的,我在 LINUX 上。我在回答中指定了这一点。随时更新它以添加 mac 用户案例
  • @JeanValjean 仍然模块语言设置为“5”。很好的研究!
【解决方案2】:

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

模块列表支持多选所以

  • Ctrl 单击单个模块
  • Shift 点击模块范围
  • Ctrl-A 所有模块

在下拉菜单中选择语言级别并手动选择级别或“使用项目语言级别”。

同样要更改项目的语言级别,在项目设置下左侧的功能区中选择项目。 项目语言级别提供了一个下拉菜单。选择所需的级别。这将为所有项目模块设置默认值

来源

【讨论】:

  • 谢谢。这很有帮助,只是选择多个模块似乎不允许您一次更改所有模块的Language level。我必须选择每个单独的模块,然后才能将其 Language level 设置为 Project Default,这正是我想要的。
  • 多选所有所选模块具有相同语言级别时有效 - 如果语言级别混合,则设置语言级别无效.看起来像一个错误..
  • 在 IntelliJ 2017.3.2 中多选对我不起作用,即使在确保所有模块开始时都具有相同的语言级别之后也是如此。
  • @ShooShoSha 多选无效。它只是改变了第一个模块的值。
  • @gaurav 您在选择模块时可能需要查看语言级别,如 ccpizza 评论的那样。
【解决方案3】:

其他解决方案对我不起作用,即使在手动修改 compiler.xml 和所有 .iml 文件后,LANGUAGE_LEVEL 仍设置为 "JDK_1_5"。这是由maven-compiler-plugin 插件的configuration 选项引起的。

将其更改为以下修复它:

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

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

【讨论】:

  • 谢谢@iusting,非常感谢。我整天都在 1.8 级很好地工作。我添加了上面的插件,突然我的代码库出现了编译错误。 Intellij 的这个“特性”非常糟糕。事实上,在 Gradle 中也会发生同样的事情,但值得庆幸的是,它存在于你的脸上。深夜,有截止日期,有这样的解决方案是一件幸事。再次感谢。
【解决方案4】:

为什么不执行“Command + Shift + R”(我在 Mac 上)然后选中“文件掩码”框并输入“*.iml”。然后搜索并替换您想要的任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    相关资源
    最近更新 更多