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

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

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

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

  2. jdk 11 模块系统_JDK 9:模块系统状态的重点

    jdk 11 模块系统 马克·雷因霍尔德 ( Mark Reinhold )的"模块系统状态 (SOMS)"已于本月初发布,它提供了信息丰富的可读性"对Jigsaw项目中 ...

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

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

  4. idea如何把包变为模块_让我们将包变成模块系统!

    idea如何把包变为模块 使用构建系统将许多项目分为模块/子项目( Maven , Gradle , SBT -): 编写模块化代码通常是一件好事. 将代码分为构建模块主要用于: 隔离代码部分(减少耦 ...

  5. JDK 9:模块系统状态的重点

    马克·雷因霍尔德 ( Mark Reinhold )的"模块系统状态 (SOMS)"已于本月初发布,它提供了信息丰富的可读性"对项目Jigsaw中原型的Java SE平台 ...

  6. 让我们将包变成模块系统!

    使用构建系统将许多项目分为模块/子项目( Maven , Gradle , SBT -): 编写模块化代码通常是一件好事. 将代码分为构建模块主要用于: 隔离代码部分(减少耦合) api / impl ...

  7. node mysql 模块化_Node.js 模块系统

    Node.js模块系统 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node. ...

  8. Rust 1.30带来更多元编程支持,并改进了模块系统

    Rust的最新版本1.30扩展了过程宏,允许它们定义新的属性和类似于函数的宏.此外,它简化了Rust模块系统,使其更加一致.直观. Rust 1.30引入了两种新类型的过程宏,"类属性的过程 ...

  9. 走进Java 7模块系统

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

最新文章

  1. apache php debug,fedora linux apache/php下安装配置xdebug
  2. javascript原型继承圣杯模式
  3. 【U8】出纳管理制单锁定
  4. 3dmax渲染计算机内存不足怎么办,解决3dmax渲染内存不够导致渲染失败的三种方法...
  5. 哪个软件能做英语测试,英语考试软件哪个好用 英语考试软件神器推荐
  6. HDU - 4565 So Easy!
  7. 蓝桥杯算法提高 盾神与条状项链
  8. 应用在夜灯领域的环境光测距感器芯片
  9. Android debug时一直处于waiting for debugger解决办法
  10. 自己设计的一个android返回键
  11. java get请求 数组_GET方式请求的url参数如果是数组,该形式/base/get?foo[]=barfoo[]=baz'报错......
  12. 倍福TwinCAT(贝福Beckhoff)应用教程13.1 TwinCAT控制松下伺服 NC高级
  13. Restful风格的springMVC配搭ajax请求的小例子
  14. Android — jimu Mirror
  15. 【MagNet】《Progressive Semantic Segmentation》
  16. #Op Jerusalem(耶路撒冷活动)之奇妙过程记载: 我裤子都脱了你给我看这个?
  17. leetcode526 优美的排列
  18. 845透色android10,高通845芯片配合安卓9.0系统完美无瑕,苹果A11和iOS都要望尘莫及...
  19. kali linux 2018.1版下安装w3af 【超详细】
  20. gwb-crypto-1

热门文章

  1. 【用学校抄作业带你走进可持久化线段树(主席树)】可持久化线段树概念+全套模板+例题入门:[福利]可持久化线段树)
  2. CodeForces616:Educational Round 5
  3. CF536C-Tavas and Pashmaks【凸壳】
  4. P5369-[PKUSC2018]最大前缀和【状压dp】
  5. nssl1438-战略威慑【枚举,树的直径】
  6. Ch5501-环路运输【环形处理dp】
  7. 牛客练习赛 56 E tarjan 割边
  8. 【kruskal】【倍增】严格次小生成树(P4180)
  9. 【暴力】I Liked Matrix!
  10. [XSY3382] 专家系统(二分+线段树)