我该如何在IntelliJ(和Maven)中更改使用的Java版本?

10
我正在开发一个简单的Java项目,并尝试首次使用IntelliJ 14;我通过教育许可证拥有Ultimate版本(在我本科的最后一年!)。我对Maven和IntelliJ都不是很熟悉。我想使用Java 8,实际上我相当确定这是我计算机上唯一安装的JDK版本。然而,无论何时编译我的项目,我都会收到几个警告和一个信息消息:
Information: Using javac 1.8.0_51 to compile java sources
Warning: java: source value 1.5 is obsolete and will be removed in a future release
Warning: java: target value 1.5 is obsolete and will be removed in a future release
所以我注意到的是,在IntelliJ IDEA > Preferences... > Build, Execution, Deployment > Compiler > Java Compiler下,目标字节码版本设置为1.5。我可以将其更改为1.8,但是当我退出IntelliJ并重新打开项目时,它会重置为1.5。项目字节码版本对SDK默认值为空。
以下是我已经完成的工作:
  • 在我的Maven pom中包含以下内容:

    <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
    
  • 根据IntelliJ网站此处的说明更改了IntelliJ偏好设置文件。

  • 根据IntelliJ网站此处的说明设置了全局、项目和模块SDK。

我有什么设置遗漏了吗?我需要怎样做才能使这个值不在重启IntelliJ后被更改?

2个回答

16

尝试在您的 pom.xml 中使用Maven编译器插件,并相应地设置源/目标级别。 IDEA将根据此设置更改项目设置。

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

应该使用<plugins></plugins>将<plugin>包装起来。 - Mingtao Sun

9
我正在使用 IntelliJ IDEA 2017.2。使用 Ctrl+F9 构建项目时,仅更改 maven-compiler-plugin 的源和目标版本是不够的。 我必须:
  1. 打开文件 | 项目结构。(或右键单击目录并选择“打开模块设置”以打开“项目结构”对话框。)
  2. 在左侧选择项目设置 | 模块。
  3. 对于我的每个项目模块(对话框中间窗格),在右侧窗格(源选项卡)上更改“语言级别”。
然后我遇到了另一个问题。为解决它,我必须:
  1. 打开文件 | 设置。
  2. 在搜索框中键入编译器并选择“Java编译器”。
  3. 在右侧,提高我的每个项目模块的“目标字节码版本”。

顺便说一句:自80年代的Turbo Pascal 2.0以来,我一直在使用IDE。我发现这样一个现代化的IDE让打开“项目设置”变得如此困难,这让我感到不可思议。首先,如果您右键单击项目(主窗口左上角),没有选项可以打开项目设置。其次,主窗口左上角的“项目”栏有一个齿轮符号和下拉列表,但也没有访问项目设置的选项。第三,在左侧的项目资源管理器视图中右键单击项目目录,会看到“打开模块设置”,但没有“项目设置”。第四,如果您在主菜单上打开“文件”,您将看到“设置”、“其他设置”,但没有“项目设置”。这很不合理。 :^|


3
天啊,我讨厌IntelliJ。它是一个愚蠢的工具,需要大量手动配置。如果你已经说过这是一个Java 1.8项目,我为什么还要在另外3个地方再次输入相同的信息呢? - user4433284
@PeterLai 这实际上是 Maven 的问题,而不是 IntelliJ 的问题。您讨厌在 IntelliJ 中进行“大量手动配置”,而更喜欢在 <选择您喜欢的 IDE> 中进行“大量手动配置”吗? - egallardo
1
@egallardo 相比 IntelliJ,我在 Visual Studio 上几乎不需要 Google 很多东西,Visual Studio 对我来说更加直观。幸运的是,stackoverflow 帮了我很大的忙 :) - Nikita

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接