2015-06-21 14 views
2

如下面的截圖所示 - 項目SDK和語言水平是1.8:的IntelliJ莫名其妙地認爲一個Maven項目擬使用的Java 1.4

enter image description here

而且我經歷了所有的項目模塊的去:他們都同樣定義爲1.8。其中之一是如下圖所示:

enter image description here

但不知何故IJ連接的1.4語言水平模塊

enter image description here

但實際上之一..它甚至不是直截了當。例如。智能感知認爲1.4:

enter image description here

但是,當我點擊java.lang.String中的紅色下劃線,它去1.8:

enter image description here

pom.xml中的罪魁禍首模塊「icloud的」沒有提到任何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> 

我已經做了建設|重建兩次。也做過

mvn clean package 

從命令行兩次。這只是一個很大的時間(/浪費)。那麼:爲什麼IJ破壞這個模塊 - 是否有解決方法?

回答

2

的問題是的IntelliJ玩不轉例子子項目是

  • 下一個包含主父項目的父目錄
  • 但該目錄是它自己的獨立項目,與父項目無關

解決方法是爲示例模塊創建一個完全獨立的項目。

另一個建議的答案 - 關於添加編譯器插件 - 沒有什麼區別。

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> 
+0

對於在intellij中新創建的maven項目,此解決方案確實有效。 – loosebazooka