我一定是反 Maven 的,因为每次我尝试使用它时,我都会花很多时间挣扎,然后就放弃了。我的最新情况是尽管有 1.7 JDK,但我无法编译 Java 7 源代码。
这是 mvn compile
的输出。有趣的是,当我使用 Maven 3.0.4 时,错误消息说 -source 1.5
而不是 -source 1.6
with Maven 3.2.1
[ERROR] .../src/main/java/pox/common/ServiceResponse.java:[300,43] diamond operator is not supported in -source 1.6
[ERROR] (use -source 7 or higher to enable diamond operator)
[ERROR] .../src/main/java/pox/common/ServiceRequest.java:[185,43] diamond operator is not supported in -source 1.6
[ERROR] (use -source 7 or higher to enable diamond operator)
如您所见,我使用的是最新版本的 Maven,而 Maven 使用的是 Java 1.7。
$ mvn -v
Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T12:37:52-05:00)
Maven home: /usr/local/maven
Java version: 1.7.0_40, vendor: Oracle Corporation
Java home: /usr/local/jdk1.7.0_40-x64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.18-371.4.1.el5", arch: "amd64", family: "unix"
我认为
mvn
脚本正在添加 /jre
因为我的环境变量没有指定它。$ echo -e "$JAVA_HOME\n$M2_HOME"
/usr/local/java7-x64
/usr/local/maven
$ which javac
/usr/local/java7-x64/bin/javac
我正在编写一些想要 Springify 的 POJO,所以我决定使用 Maven,并在 Spring 站点上发现了 Maven 入门。
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#getting-started
我将
pom.xml
和源代码从站点复制到我的 STS/Eclipse 项目中,该项目仅包含 Java 源代码并尝试编译。 STS 编译 src/main/java
中的任何源代码都没有问题。我可以删除依赖于 Java 1.7 的代码并让 Maven 进行编译。到目前为止,我发现的每件事都暗示我没有正确设置
JAVA_HOME
,但我指向的是 1.7 JDK。
最佳答案
好吧,我有一个类似的问题,我有一个使用 maven 和 eclipse 的项目,但是编译有问题,因为 maven 的默认级别源是 java 1.5,当然我的代码是 java 1.6,所以我不得不添加编译器插件maven 设置我的源代码的正确版本,这是我的配置,所以我想你应该只将 1.6 更改为 1.7
<build>
<plugins>
<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>
</configuration>
</plugin>
</plugins>
</build>
关于spring - Maven 不会使用 1.7 JDK 编译 Java 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24331527/