簡體   English   中英

如何在> = Java 9中將json的maven依賴項添加到模塊中

[英]How to add maven dependencies of json to modules in >= Java 9

在java 8項目中,您只需在maven中添加以下依賴項

<dependency>
    <groupId>javax.json</groupId>
    <artifactId>javax.json-api</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1</version>
</dependency>

使用OpenJDK,Eclipse 2018-12
和maven模塊,它會導致module-info.java中出錯:

可以從多個模塊訪問包javax.json.stream:java.json,org.glassfish.java.json

所以在兩個依賴項目中都有一個名為javax.json.stream的包,由於jigsaw模塊系統,這是不允許的?

如何解決這個問題?

編輯:
我將maven依賴項更新為1.1.4並將它們放在類路徑上。 javax.json-api有一個module-info.java文件,工作正常,eclipse不再顯示錯誤。
但是現在javax.json (org.glassfish)實現javax.json (org.glassfish)的包,導致ClassNotFoundException: org.glassfish.json.JsonProviderImpl

我還能做什么?

編輯:
它現在正在工作,我忘了在這個項目中生成一個module-info.java。

所以在兩個依賴項目中都有一個名為javax.json.stream的包,由於jigsaw模塊系統,這是不允許的?

這仍然是允許的, 但是這兩個依賴項在類路徑而不是模塊 路徑解析,即在未命名的模塊中

在將庫創建為模塊化時修復此問題的另一種方法是確保修復導出相同軟件包的下游庫,這需要自下而上的遷移,您可能必須等待它們在最新更新中修復它(或者檢查一個人是否已經出局)然后依靠他們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM