2014-08-29 53 views
0

的JDK規範我看到包含此​​部分的行家文件:在Maven的物業部分

<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> 
    <maven.compiler.executable>${env.OPENSHIFT_WILDFLY_DIR}usr/lib/jvm/jdk1.8.0_05/bin/javac</maven.compiler.executable> 
    <maven.compiler.fork>true</maven.compiler.fork> 
</properties> 

在我看來,它需要JDK 1.8,必須安裝,以便待建項目。但是,只有JDK 1.7才能安裝在機器上。你能解釋爲什麼這個工作正常嗎?我感到困惑。謝謝。

+1

屬性就像是恆定的變量。您可以根據需要定義任意數量的屬性,如果您沒有在pom.xml的其餘部分中指定它們,那麼將不會考慮這些屬性。你最好粘貼完整的POM。 – Bala 2014-08-30 09:18:34

回答

0

我注意到你有一個指向1.8的可執行文件......可以解釋這個謎團嗎?

+0

這是一個教程,我按原樣下載。我也不明白。我對maven很陌生。它很簡單。我不明白爲什麼只安裝了Jdk 1.7,但在這裏指定爲Jdk 1.8。 – marlon 2014-08-29 22:25:19

0

價值maven.compiler.executable屬性表明您的項目將建立在RedHat的OpenShift Cloud設備上,並且該設備可能安裝了JDK 8。至於爲什麼一個項目會在沒有問題的情況下在本地運行,我猜測它不包含任何* .java文件,因此從不調用編譯器。

除非您的演示需要Java 8,否則應該可以更改1.8 - > 1.7並刪除maven.compiler.executable屬性。然後Maven會調用你在PATH中碰到的任何javac。