我应该使用什么版本的 Java 来开发我的 MOJO Maven 插件?
What version of Java should I use for developing my MOJO Maven Plugin?
我目前正在实施一个新的 Maven 插件,我想使用 Java 11 进行编译和执行。
但是,我希望我的 Maven 插件能被我们的大多数项目使用。有的是运行在Java8,有的在Java11.
如果我想让它包含在其他项目中,是否必须在我的 Maven 插件中使用 Java 8?有没有办法在 Java 11 中实现它并使其可用于 Java 8 项目?
通常情况下:视情况而定。并且 Maven Java 用于不同级别,因此这需要一些解释:
您要使用 Java 9+ 特定的 features/APIs 吗?
如果没有,您可以使用Java 11构建您的项目,但您需要将<release>8</release>
添加到maven-compiler-plugin以确保代码与Java 8兼容.
如果您打算使用 Java 9+ features/APIs,请将 <release>11</release>
添加到 maven-compiler-plugin。现在你要求你的用户,他们 运行 Maven 至少 Java 11(这不是问题,即使 Maven 3.0 运行 也可以 Java 14-ea)。
即使 Java 11 上的 Maven 运行s,您的用户仍然可以创建 Java 8 个兼容项目(就像第一个项目符号中的 "if not, ..."),但大多数人习惯于 运行 并使用 Java 构建 8.
我目前正在实施一个新的 Maven 插件,我想使用 Java 11 进行编译和执行。
但是,我希望我的 Maven 插件能被我们的大多数项目使用。有的是运行在Java8,有的在Java11.
如果我想让它包含在其他项目中,是否必须在我的 Maven 插件中使用 Java 8?有没有办法在 Java 11 中实现它并使其可用于 Java 8 项目?
通常情况下:视情况而定。并且 Maven Java 用于不同级别,因此这需要一些解释:
您要使用 Java 9+ 特定的 features/APIs 吗?
如果没有,您可以使用Java 11构建您的项目,但您需要将<release>8</release>
添加到maven-compiler-plugin以确保代码与Java 8兼容.
如果您打算使用 Java 9+ features/APIs,请将 <release>11</release>
添加到 maven-compiler-plugin。现在你要求你的用户,他们 运行 Maven 至少 Java 11(这不是问题,即使 Maven 3.0 运行 也可以 Java 14-ea)。
即使 Java 11 上的 Maven 运行s,您的用户仍然可以创建 Java 8 个兼容项目(就像第一个项目符号中的 "if not, ..."),但大多数人习惯于 运行 并使用 Java 构建 8.