2015-04-06 59 views
8

我在我的pom.xml中爲maven-compiler-plugin配置了以下配置。Maven編譯器插件源和目標的jdk版本

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
    </configuration> 
</plugin> 

什麼應該是jdk的源代碼和目標版本?它如何依賴於我的電腦上安裝的jdk版本?他們會不一樣嗎?例如安裝的jdk爲1.8,源參數-1.6,目標-1.7。

回答

10

對於源/目標,您只能定義javac這意味着生成兼容代碼的開關。例如,如果你已經安裝了jdk 8並且想創建java 7可運行的類。 但它不檢查是否已經安裝了JDK 8。如果您安裝了JDK 7,這也可以工作。

如果你真的需要檢查其安裝必須通過maven-enforcer-plugin去檢查JDK的安裝JDK版本...

<project> 
    [...] 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-enforcer-plugin</artifactId> 
     <version>1.4</version> 
     <executions> 
      <execution> 
      <id>enforce-java</id> 
      <goals> 
       <goal>enforce</goal> 
      </goals> 
      <configuration> 
       <rules> 
       <requireJavaVersion> 
        <version>1.8.0</version> 
       </requireJavaVersion> 
       </rules>  
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    [...] 
</project> 

通過以上你是不是能夠建立一個JDK 7了...只用JDK 8 ...

順便說一句:你爲​​什麼用這麼舊的maven-compiler-plugin版本?

+0

這是一個老教程的例子。另外,如果源jdk大於目標,它會導致mvn錯誤,這是很自然的。 –

相關問題