Java 10迁移建议
你好,再一次到另一個熱點。 我的名字是Java Champions平臺工程師兼DevOps專家Peter Pilgrim。
如您所知,Java 9引入了模塊系統。 您可能正在將服務遷移到JDK 10或更高版本,或者至少在考慮中。 我對企業的一般建議是,您越早遷移,技術債務就越好。 在2018年9月發布Java 11時,更容易適應變化。
在撰寫本文時,我建議在傳統的單片系統上遷移作為嚴格的微服務編寫的軟件體系結構要容易得多。 為什么會這樣呢? 可以一對一或定義的工作組來適應和更改微服務。 為此,您的微服務必須彼此獨立,這意味著它們依賴于REST API或XML over SOAP over HTTP通信或其他遠程調用協議。
遷移的最大障礙是工具,堆棧依賴項以及專有技術。 讓我們對其中的每一個進行一些包裝。
工具–所有主要的IDE現在都支持Java10。它們是NetBeans,Eclipse和IntelliJ2018。因此,編譯基本Java程序應該沒有問題。 我們大多數專業人士傾向于使用Gradle和Apache Maven等構建工具。 如果您依賴Maven,則需要更改編譯器插件版本3.7.0或更高版本。 Gradle交付團隊可以使用便捷的指南,其中介紹了如何為示例項目添加手動支持。 請注意,在撰寫本文時,當前的Gradle發行版4.6不具有一流的支持。 不幸的是,Gradle需要花很多力氣才能獲得Java 9支持。 “構建Java 9模塊”具有所有詳細信息,如果您現在希望在團隊的構建中獲得Java 9模塊的支持,請閱讀本書。
堆棧依賴關系–最大的障礙是庫的依賴關系。 如果它們是開源的,那么可能即將收到Java 9支持,并且很快就會推出。 許多專業的服務器端團隊都依賴于Hibernate,Spring Framework,Spring Boot和Java EE的其他方面。 最糟糕的是,由于每個工程都依賴于其中的一個,因此實際的servlet容器可與Java 10一起使用。因此,強烈建議您親自驗證Tomcat,Payara和WildFly在Java 10運行時環境中執行。 它應在沒有任何已部署WAR文件的狀態下執行。 Pivotal在其最新版本的Spring Boot 2.0中已經為OpenJDK 9編寫了軼事支持,您可能很幸運。
最后,從長遠來看,對Java模塊系統的了解會有所幫助。 因為最終所有最重要的框架和庫都將被模塊化,所以開發運維人員/平臺工程師為什么會延遲對模塊系統的學習。
工程師將不得不根據這些概念
- 拆分包 – Java 9中的每個模塊都必須包含唯一的包。 工作遺留和當前代碼庫中的許多JAR可能都有拆分的程序包,同一程序包顯示一個或多個JAR。 這可能包括開源和商業第三方庫。 然后,您的主要工作是重構和重新架構您擁有的模塊,第三方供應商和圖書館團隊將對他們的軟件負責,他們將自己做。
- 自動模塊 – Java 9的這一概念自動從類路徑中將JAR導出為模塊
- 未命名模塊 –這種將類加載到模塊系統之外但從類路徑加載的概念。 不屬于“命名模塊”成員的類被認為是稱為未命名模塊的特殊模塊的成員
- 服務發現 – JDK 9中的服務API進行了改進,可以跨模塊加載類。
- 開放式模塊 –此概念允許在運行時檢查模塊
- 供應模塊 –此概念定義模塊之間的傳遞依賴
- 模塊化資源 –這個概念定義了加載資源,現在僅限于模塊。 您需要另一個模塊中的資源,然后必須在module-info.java文件中明確配置
- 模塊和類路徑 -不幸的是,庫編寫者必須跨模塊路徑和類路徑針對Java 8(非模塊)和Java 10(模塊)測試其代碼庫。 這是遷移的最大缺點。
我的第一個建議是找到這些拆分包。 我寫了一段shell腳本和Python來幫助我編寫一份總體報告。
就這樣。 享受車程
這里是對本文內信息的引用:
- 在Gradle中構建Java 9模塊
- 搖籃的狀態和未來
- Spring Boot和Java 9
- 本周insSpring(2017年9月26日)
- Hibernate對Java 9的支持
- Tomcat JDK 9要求和下載
- WildFly 11和OpenJDK 9可以一起使用
翻譯自: https://www.javacodegeeks.com/2018/05/migration-advice-for-java-10.html
總結
以上是生活随笔為你收集整理的Java 10迁移建议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马斯克曾因特斯拉 Autopilot 差
- 下一篇: 国轩高科德国工厂首款电池产品下线,预计