2016-09-09 70 views
0

我們已經開發了一個grails應用程序以及一些grails插件。這些grails插件被包含在主應用程序中的一個jar中。我們在發佈插件jar時保留了一個artifactory。 現在我們在這種方法中遇到了很多問題。如何正確使用grails插件

問題1:

每當我們需要一個插件做了改變,我們已經去插件項目,然後編譯,發佈,然後升級主應用程序的jar版本。當我們有很多項目時,這個過程變得非常乏味。 我們使用intellij進行開發。有什麼我們可以做的,我們打開我們的項目以及我們的插件,然後測試所有內容,而無需發佈單個插件。當測試完成後,gradle build將自動發佈這些插件罐

問題2 ==>(相關問題1)

我們有一個Grails 3.0.10應用程序,我們正在努力將其升級到3.1.11版本。在我們的應用程序中,我們使用了一些grails插件,這些插件也是用grails 3.0.10編寫的。當我們試圖將我們的主應用程序升級到3.1.11時,它會在插件中帶來一些錯誤。 這個問題的一個解決方案是通過每個插件並在grails 3.1.11中進行編譯。但我們想知道是否有其他選項可用,以便我只需更新我的主應用程序。

+0

你應該認真共同不考慮設置Jenkins或管理構建過程和代碼中的grails版本檢查,然後讓構建過程爲您完成所有構建。這聽起來很乏味,因爲這是一個手動過程。你甚至可以編寫腳本。無論3.0和3.1之間有變化,都需要重新編譯插件。 – Vahid

回答

0

Grails不支持內聯插件。

這意味着,您的Grails應用程序旁邊還有一些Grails插件的源代碼。

假設你的自定義插件的名稱是「我的試驗插件」,把這樣的事情在應用程序的BuildConfig.groovy(文件結構的頂層):

grails.plugin.location.'my-test-plugin' = '../custom_plugins/my-test-plugin' 

當然和禁用插件依賴於固定版本。

通過這種方式,您可以暫時調整buildconfig(當您正在使用該插件時),並在您發佈新版本插件後立即恢復它。

或者,您可以這樣保留它,但在這種情況下,您應該找到每個團隊成員必須使用的路徑約定(或者每個人都必須調整buildconfig中的相對/絕對路徑,並且不應該這樣做)

希望幫助

編輯:我的回答是隻Grails的1.x和2.x

Grails的3個內嵌插件看到Adding in-place plugin to grails 3 project

+0

我檢查了這個鏈接,這將通過在build.gradle中添加編譯項目來解決我的測試問題,但是當測試完成後,我必須發佈插件並更改應用程序build.gradle,然後部署戰爭。該documentayion沒有告訴任何有關如何部署該應用程序 –

+0

內聯插件方法完全繞過所包含的插件的任何發佈週期。 因此,它對於積極的開發非常有用。每當我編輯插件時,我都使用內聯插件機制。但只要我對這些更改感到滿意,我就會恢復內聯定義,定義一個新版本號,將該插件(手工放入artifactory),並在主項目中使用插件依賴關係的新版本號。 – norganos

+0

一個自動腳本,釋放插件,發佈它們,然後重新安排依賴關係並構建項目將是一個完全不同且更復雜的任務,這個imho應該在專用服務器(例如jenkins)上運行。 – norganos