2014-08-28 61 views
1

我沒有看到任何東西,直接解決了我的問題,我相信這是簡單的,因爲我在這個新的,我有一個很難試圖讓我的頭周圍可能是什麼出錯了。創建Grails的插件,應用程序無法看到類

我創建了一個簡單的插件,有一個,在它枚舉類。它實際上是一個從現有應用程序複製到插件中相應路徑的工作類。該類將從應用程序中刪除。我構建插件,安裝它,並可以看到它做grails列表插件。

在我的應用程序引用它(編譯 「:爲myplugin:1.0」)。

當我編譯/運行的應用程序的應用程序會引發編譯錯誤「無法解析類MyEnum」。

所有插件的例子似乎表明這應該很容易。 :/

所以總結:

  1. Grails的創建,插件爲myplugin
  2. 遷移簡單從另一個應用程序路徑的src/XXX/MyEnum.groovy的插件路徑的src/XXX/MyEnum.groovy
  3. 枚舉
  4. Grails的Maven的安裝應用程序的
  5. 阿爾特BuildConfig包括編譯「:爲myplugin:0.1」
  6. 運行的應用程序...獲得通過在應用程序控制器使用它的編譯錯誤枚舉無法找到( )。

我這麼想大?我必須。

我這樣做是爲了試圖查看我是否可以將部分域對象與它們的一些相關類一起分離出來。

---- UPDATE ----

看起來像一個依賴性問題。我正在使用插件進行漸進式更改(以隨時測試)。我打包並安裝它,但是即使我使用刷新依賴關係,似乎grails應用程序仍然沒有采用它。似乎我不得不每次更改增加插件的版本號以便讓應用程序項目重新獲取它?

+0

檢查以確保您的包使用Enum的位置和Enum匹配的位置,或者將Enum導入到應用程序中的任何位置。 – 2014-08-28 18:12:11

+0

謝謝,我是。我從應用程序本身複製了結構。這就是爲什麼我覺得它一定是簡單的我想念...:/ – Tuishimi 2014-08-28 18:21:41

+0

在maven安裝後檢查生成的.zip文件,如果文件在那裏。接下來檢查你的目標文件夾,(如用'find')如果有東西在附近。如果有疑問請更改插件的版本並再試一次 - 或者在m2本地回購和常青藤緩存中刪除以前的版本。它也是'src/groovy//MyEnum.groovy',對不對? – cfrick 2014-08-28 18:27:19

回答

0

問題原來是應用程序沒有檢查依賴關係的更新。我沒有找到合適的解決方案,但由於我處於開發週期,因此我只是在插件和BuildConfig中更新人造版本值。

0

有幾件事情,你可以嘗試:

  • 確保你,你正在使用它正確導入的Enum類。
  • 如果您對插件進行了更新,請使用grails maven-install重新安裝插件,然後從目標目錄中刪除已編譯的插件並運行grails refresh-dependencies或運行grails clean-all並重新運行grails refresh-dependencies
  • 在開發插件時,在您的測試應用程序中,通過添加grails.plugin.location."plugin-name" = "/path/to/plugin",嘗試在插件的BuildConfig.groovy中使用相對路徑。這將允許您對插件進行更改,並且它們會立即在您的測試應用程序中可用。
+0

感謝您的提示!我會在星期二嘗試。與此同時,我設法解決了我遇到的所有問題,將域分離爲插件,並設法甚至讓消費應用程序從插件中讀取遷移文件。 – Tuishimi 2014-08-31 06:44:47