OSX中的Maven继续使用Java 1.5进行编译

时间:2015-06-13 05:22:54

标签: java maven windows-7 maven-3 osx-mavericks

我有一个代码,我正在从2个不同的位置,Win7机器和OSX工作。

当使用Win7机器时,我不需要打扰Maven编译的哪个java版本,我只需要设置PATH变量。如果我使用的是Java 5,它会针对Java 5进行编译,如果我使用的是Java 7,它将针对Java 7编译。没有问题。

我的OSX机器的情况不同。现在这是完全相同的代码集。

我的Java版

[Mac-Pro] ~/apache-maven/apache-maven-3.1.1/conf $
p01ntbl4nk> java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

My Maven版

[Mac-Pro] ~/apache-maven/apache-maven-3.1.1/conf $
p01ntbl4nk> mvn -version
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 23:22:22+0800)
Maven home: /Users/p01ntbl4nk/apache-maven/apache-maven-default
Java version: 1.7.0_60, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.1", arch: "x86_64", family: "mac"

两者都显示相同的java版本。 Java 7u60。

但是当我在我的代码上运行 mvn clean compile 时,我得到了这个 “-source1不支持try-with-resource 0.5"

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project archival-client: Compilation failure
[ERROR] /Users/p01ntbl4nk/GitRepositories/GenericArchival/root/archival-client/src/main/java/org/si/genericArchival/client/App.java:[140,6] error: try-with-resources is not supported in -source 1.5
[ERROR] -> [Help 1]
[ERROR] 

我已经检查过,我的主maven settings.xml或模块中的任何pom.xml都没有任何引用,表明使用了sourve 1.5版

要解决此问题,我必须将以下内容添加到我的所有pom.xml

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>

但这意味着maven模块不再适应底层平台的java版本。

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

嗯,你已经有了答案,但在这里肯定是这样。 http://maven.apache.org/plugins/maven-compiler-plugin/

  

另请注意,目前默认的源设置为1.5和   默认目标设置为1.5,与您运行Maven的JDK无关   用。如果要更改这些默认值,则应设置source和   如设置Java的-source和-target中所述的目标   编译器。