簡體   English   中英

如何停止在Gradle中被另一個項目替換的項目依賴關系?

[英]How to stop a project dependency being replaced by another project in Gradle?

我有一個多項目安裝程序,我正在將一個項目定義為build.gradle文件中的依賴項。 但是該項目將被相同層次結構中的另一個項目替換。 如何阻止這種情況的發生?

考慮項目結構為:

A/B/C1/D/src
A/B/C2/D/src

在C1 / D內的build.gradle文件中,我已將項目C2 / D定義為依賴項。 但是隨后在調用構建任務時,依賴關系C2 / D被C1 / D替換,這導致以下錯誤:

Circular dependency between the following tasks:
:B:C1:D:compileJava
\--- :B:C1:D:compileJava (*)

如果我調用:C1:build則構建運行良好,但是在調用構建任務時會出現錯誤。

在運行:B:C1:D:dependencies我可以看到以下內容:

+--- project :B:C2:D -> project :B:C1:D (*)

我該如何阻止這種情況的發生?

由於簽名(帶有包的類名)是相同的,因此gradle在構建任務中從同一項目中獲取代碼。 我建議在兩個項目中為代碼使用不同的名稱(例如impl infix)。

否則,您需要擁有大量資源(時間和意願),並為資源明確使用單獨的類加載器。

暫無
暫無

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

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