我第一次使用IntelliJ IDEA Community Edition并使用Maven来设置TDD环境。我试图测试的代码和我遇到的警告消息以及项目结构如下所示。
package miscellaneous;
import org.junit.Test;
import static org.junit.Assert.*;
public class TestHello {
// Methods to be tested.....
private int Add1Plus1(int i, int j) {
return (i + j);
}
@Test
public void testAdd1Plus1() throws Exception {
assertEquals(2, Add1Plus1(1, 1));
}
}
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
Warning:java: To suppress warnings about obsolete options, use -Xlint:-options.
导致这些消息的原因是什么以及修复这些警告消息的好方法/推荐方法?
答案 0 :(得分:77)
检查 pom.xml 中的java版本(here,您可以找到该怎么做)。 还要检查项目结构中的java版本。最后你能做什么 - 检查编译器版本,例如。
答案 1 :(得分:63)
我做了上述所有操作,但仍然有一个警告实例:
Warning:java: source value 1.5 is obsolete and will be removed in a future release
我进入了 project_name.iml 文件并替换了以下标记:
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
使用:
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
瞧,没有更多的错误信息。希望这有助于某人。
答案 2 :(得分:15)
如果项目使用Maven,请检查pom.xml文件中的源和目标:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
答案 3 :(得分:6)
就我而言,上述解决方案均无效。但是改变了项目结构中的语言水平。
档案 - &gt;项目结构 - &gt;项目设置 - &gt;模块 - &gt;在&#34;来源&#34;选项卡将语言级别更改为某个较高版本。
答案 4 :(得分:5)
如果您有Maven项目,请打开 pom.xml 文件,并在项目根目录下添加以下代码:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
答案 5 :(得分:1)
我在Java的Gradle项目中遇到过这个问题。
在build.gradle文件中,发出警告,指出未使用该分配。我删除了build.gradle文件中的sourceCompatibility = 1.5
行,并且所有警告消息都消失了。
答案 6 :(得分:0)
真正的原因是,您的模块目标jdk版本与IDE不同。 解决此问题的一种方法:首选项->构建,执行,部署->编译器-> Java编译器-> Javac选项:取消选中在可能的情况下从模块目标JDK使用编译器 另外,其他有关pom的答案也是正确的。
<?xml version="1.0" encoding="UTF-8"?>
<project>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>
OR
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>