無法在 Java 9 中為自動產生的模組名稱派生模組描述符?
在 Java 9 中,使用為包含保留關鍵字(例如「native」)的依賴項自動產生的模組名稱。這可能會導致“找不到模組”之類的錯誤。
理解問題
Java 9 引入了模組的概念,它允許封裝和隔離程式碼。模組具有必須遵守 Java 識別碼規則的唯一名稱。但是,某些關鍵字(例如“native”)不能用作模組名稱的一部分。
可能的解決方法
1.使用自動模組名稱清單項目
一種解決方案是將「自動模組名稱」清單條目會新增到有問題的依賴項的JAR 檔案中。此條目指定工件的自訂模組名稱,覆蓋自動產生的名稱。例如,您可以修改 Netty Epoll 依賴項的清單檔案以包含:
<Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name>
2。將模組宣告新增至 JAR
工件擁有者也可以使用「module-info.java」檔案將模組宣告新增至其 JAR 。這明確定義了模組名稱,確保與 Java 9 的模組系統相容。
替代命名約定
根據 Java 規範,模組名稱必須是有效的套件名稱。為了適應依賴項的 Internet 網域無法轉換為有效套件名稱的情況,建議採用以下約定:
但請注意,由於其作為關鍵字的地位,在 Java 9 中不鼓勵在模組名稱中使用下劃線。
以上是如何解決 Java 9 中自動產生模組名稱的「無法派生模組描述符」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!