在标题中,我正在搜索确保与Java 17兼容的Maven版本范围,但我在Web或Maven文档中找不到任何东西。
nvbavucw1#
这个问题回答不清楚,原因是Maven组织在plugins中,插件负责执行JDK得相应工具和其他任务,例如:
maven-compiler-plugin
javac
javax.tools.JavaCompiler
maven-jar-plugin
.jar
jar
在pom.xml中显式定义插件版本也是一种常见(也是良好)的做法。由于Java到目前为止在构件的向后兼容性方面相当温和(出于安全考虑,该策略似乎是shift a bit)它能够执行很久以前的Maven版本。(实际上,根本原因是Java没有提供它自己的正确构建工具,也没有像nodejs和npm那样的默认存储库-Maven和Gradle正在填补的空白)。与此同时,Maven对于插件的向上兼容性非常温和,只要使用相同的模型版本(现在已经很长一段时间是版本3),并且其他依赖项是兼容的,最重要的是Plexus。例如,您可以运行Maven并使用oldest Maven 3 version available编译Java 17源代码,oldest Maven 3 version available是3.0,最早可追溯到2010年。即使是modules-info.java也能正确编译,因为这是Java的责任,而不是Maven的责任。但是,此版本使用http而不是https配置了中央存储库,而https现在已被服务器拒绝。但您当然可以更改配置。支持的特性是另一回事。例如,--release选项添加到javac与Java 9是支持maven-compiler-plugin从3.6.x和更新(通过maven.compiler.release指定)。然而,即使是与Maven 3.0,你可以使用maven-compiler-plugin 3.10.1,这已经发布了12年后(虽然它停止与3.11.0)。让我们以另一个特性为例:Java 9模块。仍然有一些Maven插件,并不完全支持它,如maven-shade-plugin。它可以修改常规类,但not a modules-info.class。最后让我把你们的问题在不更改配置的情况下,最早的现成可用Maven版本是什么?*
pom.xml
nodejs
npm
modules-info.java
http
https
--release
maven.compiler.release
maven-shade-plugin
modules-info.class
第3.2.3条
它是否与Java 17兼容?基本上是的是否推荐使用?当然没有建议的版本是什么?
不,永远不会有。
1条答案
按热度按时间nvbavucw1#
这个问题回答不清楚,原因是Maven组织在plugins中,插件负责执行JDK得相应工具和其他任务,例如:
maven-compiler-plugin
:执行javac
(或者更具体地说,默认使用javax.tools.JavaCompiler
)。maven-jar-plugin
:汇编.jar
(它不使用jar
命令自动执行此操作)。在
pom.xml
中显式定义插件版本也是一种常见(也是良好)的做法。由于Java到目前为止在构件的向后兼容性方面相当温和(出于安全考虑,该策略似乎是shift a bit)它能够执行很久以前的Maven版本。(实际上,根本原因是Java没有提供它自己的正确构建工具,也没有像
nodejs
和npm
那样的默认存储库-Maven和Gradle正在填补的空白)。与此同时,Maven对于插件的向上兼容性非常温和,只要使用相同的模型版本(现在已经很长一段时间是版本3),并且其他依赖项是兼容的,最重要的是Plexus。
例如,您可以运行Maven并使用oldest Maven 3 version available编译Java 17源代码,oldest Maven 3 version available是3.0,最早可追溯到2010年。即使是
modules-info.java
也能正确编译,因为这是Java的责任,而不是Maven的责任。但是,此版本使用http
而不是https
配置了中央存储库,而https
现在已被服务器拒绝。但您当然可以更改配置。支持的特性是另一回事。例如,
--release
选项添加到javac
与Java 9是支持maven-compiler-plugin
从3.6.x和更新(通过maven.compiler.release
指定)。然而,即使是与Maven 3.0,你可以使用maven-compiler-plugin
3.10.1,这已经发布了12年后(虽然它停止与3.11.0)。让我们以另一个特性为例:Java 9模块。仍然有一些Maven插件,并不完全支持它,如
maven-shade-plugin
。它可以修改常规类,但not amodules-info.class
。最后让我把你们的问题
在不更改配置的情况下,最早的现成可用Maven版本是什么?*
第3.2.3条
它是否与Java 17兼容?
基本上是的
是否推荐使用?
当然没有
建议的版本是什么?
所有Maven插件是否都有与最新Java版本完全兼容的版本?
不,永远不会有。