首頁 > 軟體

Golang中 import cycle not allowed 問題的解決方法

2022-03-25 16:00:53

1.問題現象

go編譯的時候報錯import cycle not allowed

cycle意思很簡單就是迴圈的意思。代表的就是一個包被迴圈的匯入。

2.問題分析

這個錯是在container_cloud/pkg/service這裡出現的,說明這個包被迴圈匯入。

可是service這個包檔案太多怎麼檢查呢?

可以看到這個service包下面的檔案特別多。

3.解決問題思路

雖然檔案很多,但是看自己最近修改過的檔案很少。

檢查發現這兩個檔案是修改過的

然後看檔案的頭部的修改記錄,不知道怎麼看修改記錄的可以回滾,只要檔案沒有提交就可以看到

4.如何破除依賴

檢查發現是service呼叫了mapper的資料庫方法,然後mapper裡面用到service的一個物件

這種做法是特別不規範的。我們需要做的就是把這個物件拷貝一份,放到其他包裡面

放到domain這個包下,於是依賴解除。

5.問題回顧

剛剛的情況就類似於這種。

如果A必須呼叫B中的函數,那麼我們就破除B對A的依賴,把對A的那部分提出來就行啦,就像剛剛小編不小心在mapper當中去用

service的物件。只能service呼叫mapper的函數

就像這種就不會有迴圈啦。

到此這篇關於Golang中 import cycle not allowed 問題的解決方法的文章就介紹到這了,更多相關golang中 import cycle not allowed 解決內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com