Mat*_*ias 6 java android intellij-idea maven
我们有一个基于Maven的Android版本,我们刚刚从JDK 6切换到7.
然而,它带来了IntelliJ问题的一部分.每次检测到POM中的更改并重新导入/刷新项目时,它会返回选择旧的"模块SDK",即配置为使用Java 6的模块:

即使我从"平台设置"对话框手动删除这些SDK,它们仍然会重新显示为"Maven Android API 19 Platform(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>
Run Code Online (Sandbox Code Playgroud)
IntelliJ应该选择并始终将项目配置为使用Java 7 SDK?我错过了什么吗?
我注意到当我在IntelliJ中完全删除对1.6 SDK的任何引用时问题就消失了.我猜这并不奇怪,但也不可行,因为我还有其他项目仍然依赖于Java 6 SDK的存在.
小智 5
我在使用 IntelliJ(在我的情况下为 14.x 版)创建的 Maven 项目中遇到了一个非常相似的问题。我已将 IntelliJ 配置为在项目设置中使用 JDK 8,但 IDE 继续突出显示我的代码中的问题(例如,抱怨使用@Override)。
事实证明,Maven 设置在这里优先,在我的情况下默认为 JDK 1.5(因此是 IDE 红线)。更改此处的设置确实可以解决问题,但只是暂时的,因为它们会在重新导入 Maven 项目或重新启动 IntelliJ 时恢复。
永久性修复是在您的 Maven pom 文件中显式声明 JDK 版本,如这些项目中所述。
@vikingsteve每次重新加载 pom(或更改默认项目语言级别)时,停止 IntelliJ IDEA 切换 java 语言级别
IDEA:javac:源版本 1.7 需要@bacchus 的目标版本 1.7
这是他们所说的您需要添加到 pom.xml 文件中的内容。
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
这些设置反映在 IDE 的 Maven 设置中,并为我解决了这个问题。
它将选择您在项目结构中选择的jdk,请在那里更改它。
文件>项目结构>项目设置>项目>项目sdk选择1.7。
如果 1.7 不存在,请转到文件 > 项目结构 > 平台设置 > SDK 添加 1.7。
| 归档时间: |
|
| 查看次数: |
2151 次 |
| 最近记录: |