Java 9计划很快发布(7月27日)。是否有计划发布一个符合Java 9的Spring项目的模块化版本(Java 9项目Jigsaw)?
wh6knrhe1#
Spring 5,Spring的下一个主要版本,将不会是模块化的。但是你可以在你的module-info文件中使用Spring 5 jar/artifact作为自动模块。参见official blogpost和What's new annoucement。
module-info
gywdnpxw2#
有关module-info.java,请参阅Declare Spring modules with JDK 9 module metadata问题上次提交:这个问题被标记为“General Backlog”,表示我们不会在5.1中处理它(否则它仍将被标记为5.1 GA),并且可能在后续的5.x版本中也不会处理(否则它将被标记为“5.x Backlog”)。具体地说,我们还不能发布module-info文件,因为我们需要为所有可选依赖项提供稳定的模块名称......而其中许多文件此时并没有声明稳定的模块名称(也就是说,它们甚至没有在其jar中包含Automatic-Module-Name清单条目)module-info.java。即使已知框架本身在运行时可以很好地与JDK 9/10/11一起工作,这也不是完全无关紧要的。总而言之,我对5.1的module-info文件的预测被证明是过于雄心勃勃了。(SPR-16391)和模块路径上的自动模块,以及GraalVM兼容性(SPR-16991)。暂时使用jlink需要手动将module-info.class文件添加到框架jar中...这种情况可能会持续几年,直到我们发布一个基于JDK 11的SpringFramework6.0来支持新一代的依赖关系。
module-info.java
2nc8po8w3#
来自#18079中的Juergen Hoeller在6.0中,我们与模块系统的战略一致性一直在与AOT和GraalVM原生映像的努力竞争,因此不幸的是,我们还没有机会试验构建迁移到完整的模块描述符。即使在今年,也很少有这样的请求,所以我们想知道无论如何,目前是否有很多实际价值需要挖掘。展望未来,对应用程序/框架级模块使用jlink的模块绑定方法可能会被基于GraalVM风格的单个可达性分析的运行时映像所取代。也就是说,OpenJDK的Project Leyden旨在为其标准化静态映像方法重用模块系统概念和工具,因此更深层次的模块系统对齐仍然是我们Spring Framework 6.x代的长期技术策略的一部分。
3条答案
按热度按时间wh6knrhe1#
Spring 5,Spring的下一个主要版本,将不会是模块化的。但是你可以在你的
module-info
文件中使用Spring 5 jar/artifact作为自动模块。参见official blogpost和What's new annoucement。gywdnpxw2#
有关
module-info.java
,请参阅Declare Spring modules with JDK 9 module metadata问题上次提交:这个问题被标记为“General Backlog”,表示我们不会在5.1中处理它(否则它仍将被标记为5.1 GA),并且可能在后续的5.x版本中也不会处理(否则它将被标记为“5.x Backlog”)。
具体地说,我们还不能发布module-info文件,因为我们需要为所有可选依赖项提供稳定的模块名称......而其中许多文件此时并没有声明稳定的模块名称(也就是说,它们甚至没有在其jar中包含Automatic-Module-Name清单条目)module-info.java。即使已知框架本身在运行时可以很好地与JDK 9/10/11一起工作,这也不是完全无关紧要的。
总而言之,我对5.1的module-info文件的预测被证明是过于雄心勃勃了。(SPR-16391)和模块路径上的自动模块,以及GraalVM兼容性(SPR-16991)。暂时使用jlink需要手动将module-info.class文件添加到框架jar中...这种情况可能会持续几年,直到我们发布一个基于JDK 11的SpringFramework6.0来支持新一代的依赖关系。
2nc8po8w3#
2022年11月3日更新
来自#18079中的Juergen Hoeller
在6.0中,我们与模块系统的战略一致性一直在与AOT和GraalVM原生映像的努力竞争,因此不幸的是,我们还没有机会试验构建迁移到完整的模块描述符。即使在今年,也很少有这样的请求,所以我们想知道无论如何,目前是否有很多实际价值需要挖掘。展望未来,对应用程序/框架级模块使用jlink的模块绑定方法可能会被基于GraalVM风格的单个可达性分析的运行时映像所取代。
也就是说,OpenJDK的Project Leyden旨在为其标准化静态映像方法重用模块系统概念和工具,因此更深层次的模块系统对齐仍然是我们Spring Framework 6.x代的长期技术策略的一部分。