2012-08-10 53 views
1

我已經爲兩個grails應用程序之間共享的域對象創建了一個專用插件。我能夠在我的本地環境中成功使用插件,因爲我已經通過BuildConfig文件設置了它的路徑。例如,我有以下目錄:如何將私有插件部署到雲中的grails應用

appOne/ 
myPlugin/grails-my-plugin-0.1.zip  (myPlugin is a grails plugin project dir) 

在:appOne /的grails-app/conf目錄/ BuildConfig.groovy:

grails.plugin.location.compileMyPlugin = "../myPlugin" 

我的問題是,什麼是正確的/最佳途徑要使用我的應用程序發行版處理「打包」此插件,以便我可以將其部署到雲服務,以便它無法下載?我想有一種方法可以讓Grails爲你做這件事,但我不確定。 (我對grails非常陌生)

回答

2

最後我做了以下解決這個Grails的2.1.0:

1)在Grails的插件項目:
grails package-plugin          可生產的grails-myplugin-0.1.zip文件

2)複製插件到我的應用程序的lib目錄(appOne/lib目錄/ grails-myplugin-0.1.zip)

3)在BuildConfig.groovy

  • 卸下: grails.plugin.location.compilemyPlugin =「../myPlugin」
    這是在顯影過程中使用的/以防止重建-重新安裝過程
    當包括在插件更新文件。

  • 添加:

    插件{
    .....
    編譯 ':的grails-爲myplugin:0.1'
    }

4)通過清洗appOne和重新運行測試它將通過lib目錄安裝/重新安裝插件

5)提交所有更改並將插件zip文件添加到appOne並推送。雲提供商
Heroku在這種情況下可以解決依賴關係。

+0

This很有意思......所以你在說Grails會通過你的應用程序的lib目錄解析插件? – 2012-09-30 01:25:46

+0

是的。它會在lib目錄中找到插件並將其安裝。 – 2012-09-30 23:36:51

+0

哇。看起來像你偶然發現一個無證的功能:) – 2012-09-30 23:40:22

1

您的構建腳本應該首先打包該插件,然後將該插件安裝到您的Grails應用程序中。至少,這是我必須這樣做的。如果您嘗試使用BuildConfig依賴項中指定的插件並將其作爲內聯插件,那麼Grails往往會抱怨這一點。

2

當您創建.war文件進行部署時,grails只包含您的插件。所以你沒有什麼特別的事情要做。

如果您的項目是建立在雲中,你可以嘗試到指定爲本地庫中的文件路徑:

repositories { 
    grailsCentral() 
    localRepo "../myPlugin" 
} 

剛落,你的壓縮插件,此文件夾中和Grails會發現它。

+0

我使用Heroku,我不能直接部署戰爭文件。您推送您的項目,Heroku使用您的/它的依賴項管理工具構建文件。由於我的插件沒有公開(而且我沒有運行互聯網可訪問的存儲庫),所以當Heroku構建我的項目時,它無法解決插件依賴性。 – 2012-08-11 22:03:07

+0

看到我的更新。您應該嘗試在本地計算機上查看Grails搜索插件的位置。這可能是你必須重命名你的zip文件 – rdmueller 2012-08-12 11:13:01

+1

+1 - localRepo似乎不是有效的。儘管這不起作用,但我感謝你的幫助,它確實讓我指出了正確的方向。 – 2012-08-13 16:19:46

相關問題