【发布时间】:2017-06-13 11:24:17
【问题描述】:
我正在使用 maven 3.2.5 构建我的项目,这个版本的 maven 与 java 6 兼容。
我想构建一个使用 java 5 和 maven-enforcer-plugin 强制执行的项目。
如果我将 JAVA_HOME 设置为 java 5 目录,我将无法运行 maven,如果我将 JAVA_HOME 设置为 java 6 目录,则执行器插件会抱怨 java 版本。
有没有办法告诉 maven 使用与运行 maven 不同的 java 版本?
【问题讨论】:
-
为什么要用java 5构建??????
-
这是我从同事那里收到的旧代码,他在 pom 文件中强制使用它!
-
你可能应该(我会)在这个项目上使用最新的 java 编译器。如果出于某种原因你真的需要用java 5运行它然后enforce the language level to 1.5
-
@RC 在某些情况下,除了通过源/目标语言级别之外,确实需要使用正确的 JDK 是不够的。
-
我有一个简单的例子。如果您的语言级别是 1.5 但您的 JDK 是 1.6。你可以使用像
String.isEmpty()这样的东西,但问题是isEmpty()可从JDK 6 获得,而不是从1.5 获得,并且源代码/目标不会阻止这一点。如果您也使用animal-sniffer-maven-plugin 之类的东西,则可以防止这种情况发生。
标签: java maven java-home maven-enforcer-plugin