我目前正在实现一个新的Maven插件,我想使用Java 11进行编译和执行。
但是,我希望我们的大多数项目都可以使用我的Maven插件。其中一些在Java 8中运行,而某些在Java 11中运行。
如果我希望将Java 8包含在其他项目中,是否必须在我的Maven插件中使用Java 8?有没有一种方法可以在Java 11中实现它并使它可用于Java 8项目?
[通常:这取决于。而且在Maven中Java用于不同的级别,因此这需要一些解释:
您要使用Java 9+的特定功能/ API吗?
如果没有,您可以使用Java 11来构建项目,但是需要将<release>8</release>
添加到maven-compiler-plugin以确保代码与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兼容的项目(就像第一个项目符号中的“ if not,...”一样,但是大多数用于Java 8的运行和构建。] >