我目前正在实现一个新的Maven插件,我想使用Java 11进行编译和执行。
但是,我希望我的Maven插件被我们的大多数项目使用。其中一些在Java 8中运行,一些在Java 11中运行。
如果我希望将Java 8包含在其他项目中,是否必须在我的Maven插件中使用Java 8?有没有办法在Java 11中实现它并使它可用于Java 8项目?
经常:这取决于。并且随着Maven的Java被用于不同的级别,所以这需要一些解释:
你打算使用Java 9+特定的功能/API吗?
如果没有,您可以使用Java 11构建项目,但您需要向maven-compiler-plugin添加<release>8</release>
以确保代码与Java 8兼容。
如果您确实计划使用 Java 9+ 功能/API,请将<release>11</release>
添加到 maven-compiler-plugin。现在你要求你的用户至少用Java 11运行Maven(这不是问题,即使Maven 3.0在Java 14-ea上运行良好(。
即使 Maven 在 Java 11 上运行,您的用户仍然可以创建与 Java 8 兼容的项目(就像"如果没有,......"从第一个项目符号开始(,但大多数用于使用 Java 8 运行和构建。