Intellij不知何故认为maven项目打算使用java 1.4

时间:2015-06-21 00:54:30

标签: java intellij-idea

如下面的屏幕截图所示 - 项目SDK和语言级别为1.8:

enter image description here

我完成了所有项目模块:它们同样被定义为1.8。其中一个如下所示:

enter image description here

但不知何故,IJ将 1.4 的语言水平附加到其中一个模块

enter image description here

但实际上......它甚至不是那么简单。例如。 intellisense认为1.4:

enter image description here

但是当我点击带有红色下划线的java.lang.String时,它会转到1.8:

enter image description here

罪魁祸首模块'icloud'的pom.xml没有提及任何java级别 - 所以不应该责怪:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.ignite</groupId>
        <artifactId>ignite-parent</artifactId>
        <version>1</version>
        <relativePath>../../parent</relativePath>
    </parent>

    <artifactId>ignite-cloud</artifactId>
    <version>1.1.3-SNAPSHOT</version>

    <properties>
        <jcloud.version>1.9.0</jcloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-core</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.jclouds</groupId>
            <artifactId>jclouds-allcompute</artifactId>
            <version>${jcloud.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.jclouds.labs</groupId>
            <artifactId>google-compute-engine</artifactId>
            <version>${jcloud.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.jclouds.labs</groupId>
            <artifactId>docker</artifactId>
            <version>${jcloud.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.jclouds.provider</groupId>
            <artifactId>cloudsigma-zrh</artifactId>
            <version>1.8.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-core</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

</project>

我完成了Build | Rebuild两次。也做了

mvn clean package
从命令行

两次。这只是一个很大的时间下沉(/浪费)。那么:为什么IJ破坏了这个模块 - 是否有解决方法?

2 个答案:

答案 0 :(得分:2)

将编译器插件添加到pom.xml并重新导入pom将解决此问题

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

答案 1 :(得分:2)

问题是intellij无法处理示例子项目

  • 在包含主要父项目的父目录下面
  • 但该目录是它自己的自包含项目,与父
  • 无关

解决方法是为示例模块创建一个完全独立的项目。

另一个建议的答案 - 关于添加编译器插件 - 没有任何区别。