在构建Java项目时删除IntelliJ IDEA上的警告消息

时间:2015-06-07 05:15:28

标签: java intellij-idea

我第一次使用IntelliJ IDEA Community Edition并使用Maven来设置TDD环境。我试图测试的代码和我遇到的警告消息以及项目结构如下所示。

项目结构:

enter image description here

代码:

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));
    }
}

配置详细信息:

  • Java编译器: 1.8.0_45
  • Maven版本: 3.0.5
  • Maven用户设置文件的路径: /home/sandeep/Desktop/MyDocs/repos/git-repos/public/MavenCodeBase/settings.xml
  • Maven本地存储库的路径: / home / sandeep / Desktop / MyDocs / repos / maven-repos
  • pom.xml: http://pastebin.com/462Uytad

警告信息:

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.

问题:

导致这些消息的原因是什么以及修复这些警告消息的好方法/推荐方法?

7 个答案:

答案 0 :(得分:77)

检查 pom.xml 中的java版本(here,您可以找到该怎么做)。 还要检查项目结构中的java版本。最后你能做什么 - 检查编译器版本,例如。

enter image description here

答案 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;选项卡将语言级别更改为某个较高版本。

enter image description here

答案 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行,并且所有警告消息都消失了。

DateTimeFormatter

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