【问题标题】:Any plans for Java 9 Jigsaw (module) of Spring projects?Spring项目的Java 9 Jigsaw(模块)有什么计划吗?
【发布时间】:2017-04-28 16:38:14
【问题描述】:

Java 9 计划很快发布(7 月 27 日)。是否有计划发布 Java 9 兼容版本的模块化 Spring 项目(Java 9 项目 Jigsaw)?

【问题讨论】:

标签: spring spring-boot java-9 java-platform-module-system java-module


【解决方案1】:

Spring 5 是 Spring 的下一个主要版本,它不会是模块化的。但是,您可以在 module-info 文件中使用 Spring 5 jars/artifacts 作为自动模块。请参阅official blogpostWhat's new annoucement

【讨论】:

  • 是的,你可以使用 jars/artifacts 作为自动模块,但是你不能在编译的模块上使用“jlink”,因为 jlink 不支持自动模块...
【解决方案2】:

关于module-info.java 请参阅Declare Spring modules with JDK 9 module metadata 发出最后一次提交:

这个问题被标记为“General Backlog”,表示我们不会在 5.1 中处理它(否则它仍会被标记为 5.1 GA),并且可能不会在后续的 5.x 版本中处理(否则它' d 被标记为“5.x Backlog”)。

具体来说,我们还不能发布模块信息文件,因为我们需要为所有可选依赖项提供稳定的模块名称......而且其中许多在这一点上没有声明稳定的模块名称(即,他们甚至没有在他们的 jar 中包含 Automatic-Module-Name 清单条目)。此外,我们需要在 JDK 9+ 上构建整个框架,以便编译器理解 module-info.java 格式,这也不是很简单,即使已知框架本身可以在 JDK 9/10/ 上正常工作。 11 在运行时。

总而言之,我对 5.1 的模块信息文件的预测结果过于雄心勃勃。我们目前的重点是类路径上的通用 JDK 11 兼容性 (SPR-16391) 和模块路径上的自动模块,以及 GraalVM 兼容性 (SPR-16991)。使用 jlink 需要暂时将 module-info.class 文件手动添加到框架 jar 中......这可能会保持这种状态数年,直到我们针对新一代依赖项发布 JDK 11 基线 Spring Framework 6.0 .

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 2020-06-11
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 2017-07-13
    • 2021-03-28
    • 2015-04-16
    • 2019-03-21
    相关资源
    最近更新 更多