2013-06-24 56 views
2

我如何知道Dagger的代碼生成是否正常工作?我看到幾個用戶最終發現反射被用來代替的線程。匕首:代碼生成還是反射?

我在Eclipse中運行了示例咖啡壺應用程序,當我在例如Thermosiphon我看不到任何生成的類在堆棧中。我確實看到ReflectiveAtInjectBinding,這讓我懷疑我的設置不正確。

回答

3

所以這裏有幾個方面。

  1. 匕首最近刪除(或即將遠程)爲模塊反射回退 - 所以你應該,在接下來的版本中,沒有永遠要有反模塊適配器。如果沒有生成模塊適配器,將會有一個特定的錯誤來阻止進一步的操作。

  2. 至於代碼生成驗證,可能值得創建一個小的驗證腳本,以確認任何包含@Module的源都生成了一個$$ ModuleAdapter類。假設你在Maven中運行,那麼這可能會附加到項目中的驗證步驟。

  3. 如果你在eclipse中運行,那麼你需要有m2e插件,並且你需要在你的maven設置中啓用maven來配置eclipse中的註解處理設置。

一個警告。如果你有m2e管理註解處理配置,並且如果你的匕首本身作爲eclipse項目打開,那麼你必須在項目的maven設置中禁用「解決從Workspace項目的依賴關係」

+0

謝謝,我最終得到了它通過將編譯所需的4個匕首罐添加到我的Eclipse註釋處理器路徑中工作,然後創建生成的類。有了這個設置,我也有解決工作區項目的依賴關係。我沒有更改任何有關注釋處理的設置。 –