【问题标题】:IntelliJ imports project from POM using wrong JDK versionIntelliJ 使用错误的 JDK 版本从 POM 导入项目
【发布时间】:2014-10-29 06:19:48
【问题描述】:

我们有一个基于 Maven 的 Android 版本,我们刚刚从 JDK 6 切换到 7。

不过,这也伴随着 IntelliJ 的一些问题。发生的情况是,每次它检测到 POM 中的更改并重新导入/刷新项目时,它都会返回选择旧的“Module SDK”,即配置为使用 Java 6 的那个:

即使我从“平台设置”对话框中手动删除这些 SDK,它们仍会继续以“Maven Android API 19 平台 (N)”的形式出现,其中 N 是用于区分它与所有其他(相同)SDK 的数字。

我应该提到,我们确实在 POM 中指定了 Java 7 为目标。我尝试设置编译器插件语言级别和maven.compiler.* 属性(不确定是否完成相同的事情),但没有运气:

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

IntelliJ 不应该选择并始终将项目配置为使用 Java 7 SDK 吗?我错过了什么吗?

我注意到,当我完全在 IntelliJ 中删除对 1.6 SDK 的任何引用时,问题就消失了。我想这并不奇怪,但也不可行,因为我还有其他项目仍然依赖于 Java 6 SDK。

【问题讨论】:

    标签: java android maven intellij-idea


    【解决方案1】:

    它将拾取您在项目结构中选择的jdk,请在此处更改。

    文件>项目结构>项目设置>项目>项目sdk选择1.7。

    如果 1.7 不存在,请转到 文件 > 项目结构 > 平台设置 > SDKs add 1.7 there.

    【讨论】:

    • 好吧,我不想每次重新加载 POM 时都为每个子模块手动更改它......显然这是 IntelliJ 中的一个错误,那么如果有必要的话?
    • 如果你设置它并且主模块所有的孩子都会继承它。
    • 这不是问题。问题是,所有这些东西在重新导入后都重置为 Java 6。
    • 不是错误转到 Intellj > 首选项 > 编译器 > Java 编译器,然后将其设置为您想要的版本。我不认为重置并重新导入。
    • 我这样做了,甚至针对每个子模块。没有运气。
    【解决方案2】:

    我在使用 IntelliJ(在我的例子中是 14.x 版)创建的 Maven 项目中遇到了一个非常相似的问题。我在项目设置中将 IntelliJ 配置为使用 JDK 8,但 IDE 继续突出显示我的代码中的问题(例如,抱怨 @Override 的使用)。

    事实证明,这里是 Maven 设置优先,在我的例子中默认为 JDK 1.5(因此是 IDE 红线)。在此处更改设置确实可以解决问题,但只是暂时的,因为只要重新导入 Maven 项目或重新启动 IntelliJ,它们就会恢复。

    永久修复是在您的 Maven pom 文件中明确声明 JDK 版本,如这些项目中所述。

    stop IntelliJ IDEA to switch java language level everytime the pom is reloaded (or change the default project language level)@vikingsteve

    IDEA: javac: source release 1.7 requires target release 1.7@bacchus

    这是他们所说的你需要添加到你的 pom.xml 文件中的内容。

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

    这些设置反映在 IDE 的 Maven 设置中,并为我解决了问题。

    【讨论】:

      【解决方案3】:

      还需要注意的是,您需要更改 maven 的 runner(jdk 级别)。

      Maven > Runner > JRE

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-09
        • 1970-01-01
        • 2018-03-05
        • 2021-02-09
        • 2017-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多