2016-09-16 20 views
0

我有一個maven項目。在pom.xml文件指出:maven-compiler-plugin破解在linux上?

... 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
      <source>1.7</source> 
      <target>1.7</target> 
      </configuration> 
     </plugin> 
     ... 
    </plugins> 
</build> 
... 

據我所知,這是正確的,它應該建立對JDK 7

我運行基於Debian的Linux dist,當我做mvn clean install時,它似乎總是針對我在我的操作系統中設置的javac版本進行構建。

我已經試過了解插件到底是什麼https://maven.apache.org/plugins/maven-compiler-plugin/,但它並沒有真正說明如何。

一個例子是我的javac 8在我的操作系統上運行。當我調用mvn clean install時,該項目按照pom.xml中所述編譯爲​​而不是JDK 7。爲什麼是這樣?

回答

2

默認情況下,Maven的編譯器插件使用%JAVA_HOME%/斌/的javac編譯,除非:

  • 您可執行參數設置爲不同的位置
  • 您使用Toolchains,這似乎以匹配您的需求,即與Maven編譯器插件的JDK相比,Maven的Java Runtime不同。
+0

啊謝謝。我想我誤解了實際的來源和目標。 –

0

源和目標設置僅作爲參數傳遞給javac編譯器。使用機器上安裝的javac。

+0

我也有多個javac的安裝。那麼插件的目的是什麼,除了說明什麼版本的javac應該使用? –

+1

Java 8可以編譯java 7格式的源代碼並生成java 7格式的類。在某種程度上這工作得很好。 –

+0

@JoopEggen感謝您解決這個問題! –