Java 9模块系统(拼图)@ LJC的HackTheTower
今天,我們花了半天時間參加了第一次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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java –远景JDK 8
- 下一篇: airpods连接ipad教程(airp