Java 近期新聞綜述:Micronaut 3.0、Open Liberty Starter、Spring Boot、GraalVM 及 JEP 400

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"2021年8月16日發佈的Java近期新聞綜述包括:Micronaut 3.0、OpenJDK、JDK 18、Spring Boot及Spring Tools的更新、新的Open Liberty starter工具、GraalVM Native Build Tools 0.9.3、Payara Platform的更新、Quarkus 2.1.3、Eclipse OpenMQ 6.2、以及Java in Visual Studio Code的7月份更新。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"OpenJDK"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"對於JDK 18,JEP 400("},{"type":"link","attrs":{"href":"https:\/\/openjdk.java.net\/jeps\/400","title":null,"type":null},"content":[{"type":"text","text":"默認字符集設置爲UTF-8"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":")已經從“候選”(Candidate)狀態提升爲“提議目標”(Proposed to Target)狀態。該JEP指定UTF-8作爲標準Java API的默認字符集,以確保所有實現、操作系統、 區域設置及配置的一致性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"JDK 17"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"上週,JDK 17已經進入了最終RC(Release Candidate,發佈候選版本)階段。 根據"},{"type":"link","attrs":{"href":"https:\/\/openjdk.java.net\/jeps\/3","title":null,"type":null},"content":[{"type":"text","text":"JDK的發佈過程"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",JDK 17的"},{"type":"link","attrs":{"href":"https:\/\/github.com\/openjdk\/jdk17","title":null,"type":null},"content":[{"type":"text","text":"穩定版倉庫"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"僅對"},{"type":"link","attrs":{"href":"https:\/\/bugs.openjdk.java.net\/issues\/?filter=33410","title":null,"type":null},"content":[{"type":"text","text":"關鍵Bug修復開放"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。該階段將一直持續到2021年9月14日的GA發佈。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"JDK 18"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"上週,JDK 18"},{"type":"link","attrs":{"href":"https:\/\/jdk.java.net\/18\/","title":null,"type":null},"content":[{"type":"text","text":"早期體驗版本"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的"},{"type":"link","attrs":{"href":"https:\/\/github.com\/openjdk\/jdk\/releases\/tag\/jdk-18%2B11","title":null,"type":null},"content":[{"type":"text","text":"第11版"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"發佈了,其中包含對第10版中各種"},{"type":"link","attrs":{"href":"https:\/\/bugs.openjdk.java.net\/browse\/JDK-8272332?jql=project%20%3D%20JDK%20AND%20fixversion%20%3D%2018%20and%20%22resolved%20in%20build%22%20%3D%20b11%20order%20by%20component%2C%20subcomponent","title":null,"type":null},"content":[{"type":"text","text":"問題"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的修復"},{"type":"link","attrs":{"href":"https:\/\/github.com\/openjdk\/jdk\/compare\/jdk-18%2B10...jdk-18%2B11","title":null,"type":null},"content":[{"type":"text","text":"更新"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。 更多詳細信息請查看"},{"type":"link","attrs":{"href":"https:\/\/jdk.java.net\/18\/release-notes","title":null,"type":null},"content":[{"type":"text","text":"發佈說明"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"對於JDK 17和JDK 18,均鼓勵開發人員通過"},{"type":"link","attrs":{"href":"https:\/\/bugreport.java.com\/bugreport\/","title":null,"type":null},"content":[{"type":"text","text":"Java Bug Database"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"來提交Bug。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"Spring Framework"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Spring這周很忙碌,因爲"},{"type":"link","attrs":{"href":"https:\/\/spring.io\/projects\/spring-boot","title":null,"type":null},"content":[{"type":"text","text":"Spring Boot"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"、"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/spring-authorization-server","title":null,"type":null},"content":[{"type":"text","text":"Spring Authorization Server"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"和"},{"type":"link","attrs":{"href":"https:\/\/spring.io\/tools","title":null,"type":null},"content":[{"type":"text","text":"Spring Tools"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"有多個版本發佈。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Spring Boot "},{"type":"link","attrs":{"href":"https:\/\/spring.io\/blog\/2021\/08\/19\/spring-boot-2-5-4-available-now","title":null,"type":null},"content":[{"type":"text","text":"2.5.4"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"和"},{"type":"link","attrs":{"href":"https:\/\/spring.io\/blog\/2021\/08\/19\/spring-boot-2-4-10-is-now-available","title":null,"type":null},"content":[{"type":"text","text":"2.4.10"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的次要版本分別修復了"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v2.5.4","title":null,"type":null},"content":[{"type":"text","text":"35個Bug"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"和"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v2.4.10","title":null,"type":null},"content":[{"type":"text","text":"29個Bug"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",其中包括對兩個版本的依賴項升級和文檔改進。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在通往Spring Boot 2.6.0的道路上,第二個里程碑版本"},{"type":"link","attrs":{"href":"https:\/\/spring.io\/blog\/2021\/08\/19\/spring-boot-2-6-0-m2-is-now-available","title":null,"type":null},"content":[{"type":"text","text":"已經發布"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"了,其中包含"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/spring-boot\/releases\/tag\/v2.6.0-M2","title":null,"type":null},"content":[{"type":"text","text":"100多個Bug修復、文檔改進和依賴項升級"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。 新特性包括: "},{"type":"codeinline","content":[{"type":"text","text":"AbstractApplicationContextRunner"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"類"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/spring-boot\/issues\/27690","title":null,"type":null},"content":[{"type":"text","text":"更簡單的配置"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"; "},{"type":"codeinline","content":[{"type":"text","text":"spring-rabbit-stream"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/spring-boot\/pull\/27480","title":null,"type":null},"content":[{"type":"text","text":"自動配置"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":";當在Open J9上運行時,支持"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/spring-boot\/issues\/26466","title":null,"type":null},"content":[{"type":"text","text":"堆轉儲(dumping the heap)"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":";並刪除了"},{"type":"codeinline","content":[{"type":"text","text":"org.jboss:jboss-transaction-spi"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"構件的"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/spring-boot\/issues\/26574","title":null,"type":null},"content":[{"type":"text","text":"依賴管理"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"隨着"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/spring-authorization-server\/releases\/tag\/0.2.0","title":null,"type":null},"content":[{"type":"text","text":"0.2.0"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"初始生產版本的"},{"type":"link","attrs":{"href":"https:\/\/spring.io\/blog\/2021\/08\/19\/spring-authorization-server-goes-to-production","title":null,"type":null},"content":[{"type":"text","text":"發佈"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",Spring Authorization Server已經正式從“實驗”(experimental)狀態提升爲Spring"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects","title":null,"type":null},"content":[{"type":"text","text":"項目組合的一員"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"用於Eclipse、Visual Studio Code和Theia的Spring Tools 4的"},{"type":"link","attrs":{"href":"https:\/\/spring.io\/tools\/","title":null,"type":null},"content":[{"type":"text","text":"4.11.1版"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"已於上週"},{"type":"link","attrs":{"href":"https:\/\/spring.io\/blog\/2021\/08\/18\/spring-tools-4-11-1-released","title":null,"type":null},"content":[{"type":"text","text":"發佈"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",其中涉及到的問題主要有:Spring Boot擴展和Codespaces,擴展在Codespaces中會"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/sts4\/issues\/669","title":null,"type":null},"content":[{"type":"text","text":"多次啓動"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"且"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/sts4\/issues\/670","title":null,"type":null},"content":[{"type":"text","text":"找不到正確"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的JDK; 與"},{"type":"codeinline","content":[{"type":"text","text":"JAVA_HOME"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"環境變量"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/sts4\/issues\/664","title":null,"type":null},"content":[{"type":"text","text":"相關的錯誤信息不正確"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":";以及在GitResource模式中添加了"},{"type":"link","attrs":{"href":"https:\/\/github.com\/spring-projects\/sts4\/issues\/671","title":null,"type":null},"content":[{"type":"text","text":"缺失的屬性"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。 開發人員預計4.12.0版將於2021年9月下旬發佈。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"Micronaut 3.0"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在發佈了5個里程碑版本和1個候選版本之後,Object Computing,Inc.(OCI)"},{"type":"link","attrs":{"href":"https:\/\/micronaut.io\/2021\/08\/18\/micronaut-framework-3-released\/","title":null,"type":null},"content":[{"type":"text","text":"發佈了"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Micronaut 3.0。新特性包括:從RxJava2遷移到"},{"type":"link","attrs":{"href":"https:\/\/projectreactor.io\/","title":null,"type":null},"content":[{"type":"text","text":"Project Reactor"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":";通過對所有註解顯式使用 "},{"type":"codeinline","content":[{"type":"text","text":"@Inherited"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"來更改註解的繼承方式;將註解 "},{"type":"codeinline","content":[{"type":"text","text":"@PreDestroy"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"和"},{"type":"codeinline","content":[{"type":"text","text":"@PostConstruct"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"遷移到了 "},{"type":"codeinline","content":[{"type":"text","text":"jakarta.annotation"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"命名空間;以及對控制反轉(IoC)的改進。 InfoQ將繼續跟進以提供更詳細的新聞報道。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"Payara"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Payara"},{"type":"link","attrs":{"href":"https:\/\/blog.payara.fish\/whats-new-in-the-august-2021-payara-platform-release","title":null,"type":null},"content":[{"type":"text","text":"發佈了"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"2021年8月版的Payara平臺。社區版5.2021.6包含了7個Bug修復、1個組件升級和2個安全修復。 企業版5.30.0包含了8個Bug修復、2個組件升級和2個安全修復。 新特性包括:支持OIDC安全性的多租戶控制;Jackson-Databind依賴項中的安全漏洞修復;並"},{"type":"link","attrs":{"href":"https:\/\/blog.payara.fish\/payara-platform-supports-microprofile-4.1","title":null,"type":null},"content":[{"type":"text","text":"支持了"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"MicroProfile 4.1(MicroProfile的最新版本)。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"Quarkus"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Red Hat"},{"type":"link","attrs":{"href":"https:\/\/quarkus.io\/blog\/quarkus-2-1-3-final-released\/","title":null,"type":null},"content":[{"type":"text","text":"發佈了"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Quarkus 2.1.3.Final,這是在Quarkus 2.1之上的第三個維護版本,其特性包括:能夠根據環境變量"},{"type":"link","attrs":{"href":"https:\/\/github.com\/quarkusio\/quarkus\/pull\/19486","title":null,"type":null},"content":[{"type":"text","text":"配置註冊表URL"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":";在Keycloak Dev Services中創建用戶時,具有"},{"type":"link","attrs":{"href":"https:\/\/github.com\/quarkusio\/quarkus\/pull\/19459","title":null,"type":null},"content":[{"type":"text","text":"定義唯一角色的能力"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":";使用Aesh控制檯的"},{"type":"codeinline","content":[{"type":"text","text":"write()"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"方法時,能防止無限循環;並且"},{"type":"link","attrs":{"href":"https:\/\/github.com\/quarkusio\/quarkus\/issues\/19299","title":null,"type":null},"content":[{"type":"text","text":"修復"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"了RESTEasy的響應式端點問題。更多詳細信息請查看"},{"type":"link","attrs":{"href":"https:\/\/github.com\/quarkusio\/quarkus\/releases\/tag\/2.1.3.Final","title":null,"type":null},"content":[{"type":"text","text":"變更日誌"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"OpenLiberty"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"IBM"},{"type":"link","attrs":{"href":"https:\/\/openliberty.io\/blog\/2021\/08\/20\/open-liberty-starter.html","title":null,"type":null},"content":[{"type":"text","text":"引入了"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Open Liberty "},{"type":"link","attrs":{"href":"https:\/\/openliberty.io\/downloads\/","title":null,"type":null},"content":[{"type":"text","text":"Starter"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"來構建Open Liberty應用程序。"},{"type":"codeinline","content":[{"type":"text","text":"RestApplication.java"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"、"},{"type":"codeinline","content":[{"type":"text","text":"server.xml"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"及"},{"type":"codeinline","content":[{"type":"text","text":"Dockerfile"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"文件是根據所選的Java、Jakarta EE及MicroProfile的版本生成的。 這個新實用程序引入了許多其他的啓動實用程序,比如"},{"type":"link","attrs":{"href":"https:\/\/start.spring.io\/","title":null,"type":null},"content":[{"type":"text","text":"Spring Initializr"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"、"},{"type":"link","attrs":{"href":"https:\/\/micronaut.io\/launch","title":null,"type":null},"content":[{"type":"text","text":"Micronaut Launch"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"和"},{"type":"link","attrs":{"href":"https:\/\/code.quarkus.io\/","title":null,"type":null},"content":[{"type":"text","text":"Quarkus Code Generator"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"Eclipse OpenMQ"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Eclipse基金會已經發布了"},{"type":"link","attrs":{"href":"https:\/\/projects.eclipse.org\/proposals\/eclipse-openmq","title":null,"type":null},"content":[{"type":"text","text":"OpenMQ 6.2"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",它是"},{"type":"link","attrs":{"href":"https:\/\/www.oracle.com\/java\/technologies\/java-message-service.html","title":null,"type":null},"content":[{"type":"text","text":"Java消息服務"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"規範的一種實現,並且它將被包含在即將發佈的"},{"type":"link","attrs":{"href":"https:\/\/projects.eclipse.org\/projects\/ee4j.glassfish\/","title":null,"type":null},"content":[{"type":"text","text":"GlassFish"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" 6.2.1中。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"GraalVM"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"Oracle實驗室"},{"type":"link","attrs":{"href":"https:\/\/github.com\/graalvm\/native-build-tools\/releases","title":null,"type":null},"content":[{"type":"text","text":"發佈"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"了"},{"type":"link","attrs":{"href":"https:\/\/github.com\/graalvm\/native-build-tools\/","title":null,"type":null},"content":[{"type":"text","text":"Native Build Tools"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"的0.9.3版,這是一個GraalVM項目,包含用於與 GraalVM "},{"type":"link","attrs":{"href":"https:\/\/www.graalvm.org\/reference-manual\/native-image\/","title":null,"type":null},"content":[{"type":"text","text":"Native Image"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"互操作的插件。 該版本修復了許多與Gradle相關的問題,比如 "},{"type":"codeinline","content":[{"type":"text","text":"mainClass"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"配置"},{"type":"link","attrs":{"href":"https:\/\/github.com\/graalvm\/native-build-tools\/pull\/113","title":null,"type":null},"content":[{"type":"text","text":"不可選"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",並刪除了已損壞的"},{"type":"codeinline","content":[{"type":"text","text":"server"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"配置。後者引入了破壞性的變更。其他新特性包括:將用於生成JSON文件的庫從"},{"type":"codeinline","content":[{"type":"text","text":"groovy-json"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"替換爲"},{"type":"codeinline","content":[{"type":"text","text":"jackson-databind"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" ;併爲Gradle插件"},{"type":"link","attrs":{"href":"https:\/\/github.com\/graalvm\/native-build-tools\/pull\/121","title":null,"type":null},"content":[{"type":"text","text":"添加"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"了"},{"type":"codeinline","content":[{"type":"text","text":"sharedLibrary"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"配置。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"Java in Visual Studio Code"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/code.visualstudio.com\/docs\/languages\/java","title":null,"type":null},"content":[{"type":"text","text":"Java in Visual Studio Code"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"在2021年7月的"},{"type":"link","attrs":{"href":"https:\/\/foojay.io\/today\/vs-code-java-july-2021-update-new-testing-experience-maven-improvements-and-product-roadmap-progress-update\/","title":null,"type":null},"content":[{"type":"text","text":"更新"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"中提供了Java擴展,這些擴展采用了新的Visual Studio Code"},{"type":"link","attrs":{"href":"https:\/\/code.visualstudio.com\/updates\/v1_59#_testing-apis","title":null,"type":null},"content":[{"type":"text","text":"測試API"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":",其中包括了一個IDE中的新測試裝飾器,並改進了測試資源管理器和測試信息輸出。他們還對Maven依賴管理進行了改進,並更新Java in Visual Studio Code在2021年下半年的"},{"type":"link","attrs":{"href":"https:\/\/devblogs.microsoft.com\/java\/java-on-visual-studio-code-update-june-2021\/","title":null,"type":null},"content":[{"type":"text","text":"路線圖"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]},{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}],"text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"color","attrs":{"color":"#222222","name":"user"}},{"type":"strong"}],"text":"原文鏈接:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"link","attrs":{"href":"https:\/\/www.infoq.com\/news\/2021\/08\/java-news-roundup-aug16-2021\/","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/www.infoq.com\/news\/2021\/08\/java-news-roundup-aug16-2021\/"}],"marks":[{"type":"color","attrs":{"color":"#494949","name":"user"}}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章