【发布时间】:2014-11-19 14:58:00
【问题描述】:
这是一个问题。假设我有一个 Maven 项目(“A”),它引入了一个不同的 Maven 项目(“B”)作为依赖项。目前两者都使用 Java 7 进行编译。如果项目 B 切换到 Java 8,是否会强制项目 A 也使用 Java 8?
如果是这样,有没有办法解决它 - 即让项目 B 生成项目 A 可以使用的代码,而无需将项目 B 降级到 Java 7 或将项目 A 升级到 Java 8?例如,让项目 B 执行某种形式的“源 1.8 目标 1.7”,例如。 (javac 似乎不喜欢这样,我找不到替代编译器——例如,plexus-compiler-eclipse 不支持 Java 8,但这完全是另一个问题;问题是解耦从用于生成它的源版本生成的字节码)
【问题讨论】:
-
如果 B 使用的是 Java 8,您可能能够实现的最好的结果是使用 jdk8 编译 A,但 target = 1.7。不过,这可能毫无意义,因为 B 中的类不会在 JDK7 下运行。所以,简而言之,如果 B 切换,A 要么停留在旧版本,要么也必须切换。
标签: java maven compatibility javac maven-compiler-plugin