ljc.framework
今天,我们花了半天时间参加了第一次HackTheTower活动。 伦敦的Java用户组(aka LJC )的成员应邀在伦敦市的'SalesForceTower'(aka Heron Tower )26楼聚会。
- Heather VanCura是Java社区流程的主席
- 马尼·萨卡 ( Mani Sarkar )
- ZeroTurnaround开发人员关系总监Simon Maple
讨论和了解Java 9的模块化系统Project Jigsaw 。 活动组织得井井有条,从上方进行编码,可以欣赏伦敦市中心和其他摩天大楼的景观!
该活动分为三个部分,向我们提供了有关Jigsaw的练习和材料(小示例,类似于您在OpenJDK页面上找到的示例),然后我们可以谈论或提出任何担忧或遗漏的感觉应当反馈给不断发展的Jigsaw的OpenJDK / Oracle开发人员。
您可以在以下链接上找到所有材料/幻灯片和我们的反馈 :
- Github仓库: https : //git.io/v9UJ8
- 此反馈表: https : //goo.gl/oytFzX
- 幻灯片: http : //bit.ly/2pnPU1c
我对拼图的感觉如何
老实说,Jigsaw似乎是我最不喜欢的Java 9功能。这是我参加该活动的原因之一。 并不是因为它本身就是一个不好的功能,或者它背后的实际需求,特别是使JDK / JRE的核心模块化或更物联网友好的功能。 但是由于对现有Java生态系统和应用程序的潜在副作用。 最终,由于各种问题(而且我仍然有),我最终还是没有第一次尝试使用预发行版来测试个人或与工作相关的项目,以查看它们是否适用于新版本的Java。
我们是否错过了拼图之类的功能? 是。 我们有类似的尝试吗? 是的,我们有了OSGi (涵盖了许多部分),然后出现了JBoss Modules 。 我总是觉得OSGi是个好主意,但是太复杂了。 我有机会使用JBoss模块,我喜欢它,但这只是在基于它构建的产品Wildfly应用程序服务器上进行的,因此它就像一个完整的预言,因此我从未尝试过将其应用于我的项目或我工作过的任何项目。
如今,看到Java代码示例以及伴随bash脚本调用诸如工具之类的jdk特定命令的我感到沮丧。 javac的旗子, JLINK或JMOD ,罐子是不是罐子,但是他们表现得像罐子。 我感觉我在uni的第一天是Java的那一天,最终Ant仍然不是问题,而Java是使用定制的make文件机制等进行编译的。我喜欢所有这些新工具吗? 没有为什么? 因为作为一名应用程序/业务开发人员,我依赖抽象的构建工具,并且希望它们为我带来繁重的工作,所以我不想回去编辑模块描述符或在以Plain Old Jar为王的情况下与现有的构建工具抗衡。新的国王模块,反之亦然。
因此,目前我看不到现有的主流Java Built工具的明确路径。 是的,工作正在进行中,例如Maven编译器插件版本3.6.1与Jigsaw兼容。 顺便说一句,当前您似乎需要将JigSaw模块映射和打包为Maven模块,以便拥有2个世界中最好的。 我不知道这整个事情会让我有些困惑,除非我错过了什么。
看来我们正在朝着Java生态系统的方向发展,至少对于Java 9而言,您要么使用Jigsaw的规则,然后从头开始构建一些新东西,要么引入与Jigsaw语义兼容的模块和项目结构,要么就闭上眼睛,添加“ kill switch ”或您的Java执行,然后继续探索新世界和旧世界。
最后但并非最不重要的一点是,我不能忽略,来自应用程序服务器的担忧和发布的数量越来越多,库开发人员对Java9可能会给他们的库带来潜在的问题。 我想所有Java应用程序开发人员都想使用Java 9,但是如果想引入1000个新问题,因为Spring类加载不再起作用,或者
CDI或其应用程序服务器的任何子模块将要中断,这是一种不必要的噪音。
因此,暂时我对此持怀疑态度,但我将继续投入时间并学习更多或尝试使用它,很可能不是使用SpringBoot或WildflySwarm项目,而是相当简单。
我真的很喜欢以下文章
- https://blog.plan99.net/is-jigsaw-good-or-is-it-wack-ec634d36dd6f
- https://developer.jboss.org/blogs/scott.stark
翻译自: https://www.javacodegeeks.com/2017/04/java-9-module-system-jigsaw-ljcs-hackthetower.html
ljc.framework