簡體   English   中英

降級循環依賴庫中的 java 目標版本

[英]Downgrade java target version in cyclically dependent libraries

庫 A 依賴於庫 B,B 依賴於 A。現在 A 和 B 使用 java 11。由於我的項目問題,我需要將它的 java 目標版本降級為 8。 我怎樣才能做到這一點?

在圖書館中,我使用 gradle 6.4.1。 當我嘗試將 sourceCompatibility 和 targetCompatibility 更改為 1.8 構建失敗並顯示預期消息:

- Incompatible because this component declares a component compatible with Java 11 and the consumer needed a component compatible with Java 8

UPD:庫有模塊,所以A庫的一個模塊依賴B中的一些模塊,以此類推。 沒有來自 A 和 B 的兩個模塊,它們相互依賴

我想我找到了一個骯臟的解決方案:在與目標版本 = 11 的模塊無關的模塊中降級 java 目標版本,發布庫,重復。 當所有模塊降級時,可以降級整個庫。 如果有人知道更好的解決方案,請告訴我

  1. 首先,循環依賴是一種不好的做法,您必須通過重構或將類移動到正確的模塊來刪除它。
  2. 當您將 java 版本從 11 降級到 8 時,您必須將依賴的 jars/庫降級到與 java 8 兼容。 有一個棘手的情況是我們必須生成一個帶有模塊信息的 jar 文件,該文件在 Java 8、9、10 和 11 上構建和運行。

暫無
暫無

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

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