我正在使用Maven 3.2.3。我有一個多模塊項目,目前已經把我的Maven編譯器插件設置爲這樣
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-proc:none</compilerArgument>
<fork>true</fork>
<!-- <debug>true</debug> <debuglevel>none</debuglevel> -->
</configuration>
<executions>
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
什麼我不知道是我怎麼可以設置基於$ JAVA_HOME變量的編譯器版本在我的系統,這意味着,如果$ JAVA_HOME指向Java 6安裝,我的Maven編譯器將使用「1.6」作爲源和目標。同樣,如果我的$ JAVA_HOME指向Java 7安裝,則源和目標將爲「1.7」等等。如果環境中沒有設置$ JAVA_HOME,我希望編譯器默認爲1.6。
感謝您提供關於如何設置的建議和示例。
這根本不可能,也沒有意義,因爲你的構建會依賴於環境。最好的做法是像你已經做的那樣在你的構建中定義源/目標級別。此外,你應該使用[maven-enforcer-plugin來強制使用哪個JDK](http://maven.apache.org/enforcer/enforcer-rules/requireJavaVersion.html)。除此之外,如果你還沒有設置JAVA_HOME,你可以創建一個JDK來運行Maven。 – khmarbaise
構建不會environemtn depednent,我只是尋找一種方法來編譯我的源代碼基於$ JAVA_HOME var設置爲什麼,而不必在我的pom中硬編碼版本。不可能?來吧,夥計。一切皆有可能! –