【发布时间】:2020-01-17 09:12:26
【问题描述】:
我目前正在实现一个新的 Maven 插件,我想使用 Java 11 进行编译和执行。
但是,我希望我们的大多数项目都可以使用我的 Maven 插件。其中一些在 Java 8 中运行,一些在 Java 11 中运行。
如果我希望将 Java 8 包含在其他项目中,是否必须在我的 Maven 插件中使用 Java 8?有没有办法在 Java 11 中实现它并使其可用于 Java 8 项目?
【问题讨论】:
-
如果您最终计划使用从您的类中创建的 JAR 创建工件,这并不重要,您可以使用 Java-8 或 Java-11 (MR-JAR) 开发它们。不同之处可能在于有人将它们公开为 JMOD,而不是在 Java-9 中引入,而 Maven 上没有太多工作反映在包装这种类型上。
-
“有没有办法在 Java 11 中实现它并使其可用于 Java 8 项目?” 不,您可以使用 Java 11 编译器,尽管它更容易使用 Java 8 编译器以确保兼容性(需要更少的编译器选项),但源代码仍然必须是 Java 8 代码,即不使用 Java 9+ 功能或 API。
标签: java maven maven-plugin java-11 mojo