今天,我们花了半天时间参加了第一次HackTheTower活动。 伦敦的Java用户组(aka LJC )的成员应伦敦市的邀请,聚集在伦敦市'SalesForceTower'(aka Heron Tower )26楼。

  • Heather VanCura是Java社区流程的主席
  • 马尼·萨卡 ( Mani Sarkar )
  • ZeroTurnaround开发人员关系总监Simon Maple

讨论和了解Java 9的模块化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

Java 9模块系统(拼图)@ LJC的HackTheTower相关推荐

  1. Java平台模块系统公众审查未能通过

    在过去的几周里,Java世界中的戏剧,阴谋和政治活动异常高涨,最终在本周的JSR 376 Java平台模块系统公共评审投票中达到了顶峰. Java模块化(包括Java平台模块系统(JPMS))可以说是 ...

  2. 走进Java 7模块系统

    笔者在观看过Devoxx关于Jigsaw的一段演示后,我很兴奋,觉得它应该会是针对复杂类路径版本问题和JAR陷阱等问题的解决方案.开发者最终能够使用他们所期望的任何Xalan版本,而无需被迫使用授权机 ...

  3. java 平台级模块系统_Java平台模块系统公众审查未能通过

    java 平台级模块系统 在过去的几周里,Java世界中的戏剧,阴谋和政治活动异常高涨,最终在本周的JSR 376 Java平台模块系统公共评审投票中达到了顶峰. Java模块化(包括Java平台模块 ...

  4. Java Platform Module系统中的可选依赖项

    Java平台模块系统(JPMS)对依赖项有很强的见解:默认情况下,需要(必须可访问)它们,然后在编译时和运行时都将它们存在. 但是,这不适用于可选的依赖项,因为代码是针对运行时不一定存在的工件编写的. ...

  5. ide 两个模块的jdk版本不一样_Java平台模块系统(3)- JDK工具

    在完成项目模块的源代码之后,我们需要编译和运行这些模块.大部分时候,我们都是在IDE上进行开发和测试,可以把编译和运行的工作交给IDE来完成.不过我们仍然可以用javac和java来分别编译和运行代码 ...

  6. java11模块化开发_【JDK 11】关于 Java 模块系统,看这一篇就够了

    继 2014 年 3 月 Java 8 发布之后,时隔 4 年,2018 年 9 月,Java 11 如期发布,其间间隔了 Java 9 和 Java 10 两个非LTS(Long Term Supp ...

  7. 说说Java 7中的模块系统基本概念

    以下是本人的一些分享,我热爱编程,希望能多交编程的爱好者,如果你也是其中一名,那么请加好友,大家关注一下,下面的文章是自己觉得一些有用的东西,留下来给自己当笔记,当然也希望能帮助到你,首先感谢你的阅读 ...

  8. found linux系统wget出现not_Java 9 AOT 试用:仅支持 64 位 Linux和java.base 模块编译

    Java 9 引入了 aot 编译方式,能够将 class 文件直接编译成可执行二进制文件.目前 Java 9 的 early access 版本已经提供了编译工具,让我们来看看它的功能吧. 注意:按 ...

  9. java给教师排课模块,java选排课系统

    每天记录学习,每天会有好心情.*^_^* 今天和一个朋友共同完成了一个基于web的java选排课系统项目,我们在开发时选用的框架是SSM(MYECLIPSE)框架.我这个朋友知识有限,只会这个框架,哈 ...

最新文章

  1. 武汉大专计算机专业分数线,武汉高考分数线最低的大专,2021年武汉大专最低分数线是多少...
  2. 如何在企业服务生态实现共赢?网易邀你共商智慧企业未来计划
  3. 一个实例带你搞懂Apriori关联分析算法
  4. Bat脚本处理ftp超强案例解说
  5. 最详细的quartz表达式解释
  6. 基于ObjectArx进行cad二次开发总结
  7. Linux 五个最牛视频编辑软件
  8. Modis数据下载与处理(mrt、wget)
  9. mac 苹果电脑恢复 Recovery HD;进不去恢复模式;
  10. SylixOS---Attach 到进程调试方法
  11. 【机器学习】【决策树】自己动手用Python实现一个类:in样本集,out特征分布、概率密度、熵、条件熵、信息增益、信息增益比
  12. 《追寻生命的意义》--后记
  13. 程序员试用期提离职被领导起诉
  14. 教你炒股票25:每日解盘
  15. 高三学生早恋怎么处理?家长该怎么做?
  16. 情侣空间显示服务器失败,情侣空间error是什么意思
  17. Task 06--For、If以及While
  18. Linux视窗系统:QT使用GPU渲染
  19. AMD GPU的断点指令
  20. FUNCTION 数据库名.GETDATE does not exist 详情页下单

热门文章

  1. Java:comp/env/讲解与JNDI
  2. StringTokenizer的使用
  3. layui结合ajax实现下拉菜单联动效果
  4. 负载均衡Ribbon和Feign---SpringCloud
  5. android之微信分享音频
  6. 二级MYSQL的语法整理_MySQL语法整理
  7. 移除指定的session
  8. thymeleaf与jsp_PagingAndSortingRepository –如何与Thymeleaf一起使用
  9. jpa 使用jdbc_在JPA和JDBC中使用存储过程。 嗯,只要使用jOOQ
  10. 认证令牌_Java应用程序的令牌认证