2014-07-02 39 views
0

我有一個需要由我的Grails應用程序(myapp)使用的Grails(2.3.6)插件(grails-myplugin)。裏面MyPluginPlugin.groovy,我有:適用於Grails插件的Artifactory回購結構?

def version = "0.1.0" 

的插件運行package-plugin後,我留下了grails-myplugin-0.1-0.zip

我必須位於一個Artifactory的服務器:

http://myartifactory01/artifactory 

這裏面Artifactory的實例是所謂的myorg-releases回購。

myappBuildConfig.groovy我需要指定插件的,好了,插件:

plugins { 
    compile: "???" 
} 

我的問題:

  1. 什麼我compile閉合(內部BuildConfig.groovy)需從Artifactory中提取插件?
  2. Artifactory內部的插件需要什麼版本庫路徑?例如:http://myartifactory01/artifactory/simple/myorg-releases/????讓我們假設在正常的Maven/Ivy情況下,我們的organizationmyorgmodule的名稱是grails-myplguinmyplugin(無論約定狀態),並且當前revision0.1.0
  3. 如何處理插件的版本控制?僅僅增加version(在MyPluginPlugin.groovy之內)然後運行package-plugin並將新版本發佈到Artifactory是否是標準做法?或者有更好/更喜歡的方式?
+0

我認爲你必須從'BuildConfig.groovy'的'repositories'節開始,到它'mavenRepo的 「http:// myartifactory01/artifactory的/」'或索姆類似的東西。之後你可以在'dependencies'部分使用你的插件。 類似於'compile'myorg-releases:grails-myplugin:0.1.0「'。 – wwarlock

+0

此外,你可以導入你的插件(特別是如果源位於主項目附近)作爲'grails.plugin.location.'myplugin'=「../.../ grails-myplugin /」' – wwarlock

回答

2

下面是我如何使用標準Artifactory安裝進行操作。

編輯:對於問題編號3,您可以提升插件描述符中的版本號,或者如果進行較小的更改,可以使用相同的版本號(--allow-overwrite)重新發布並刪除myApp的目標目錄,一個新的插件安裝。

/path/to/myPlugin/grails-app/conf/BuildConfig.groovy:

grails.project.dependency.distribution = { 
    remoteRepository(id: "localPluginReleases", url: "http://localhost:8081/artifactory/plugins-release-local/") 
    remoteRepository(id: "localPluginSnapshots", url: "http://localhost:8081/artifactory/plugins-snapshot-local/") 
} 

外殼:

cd /path/to/myPlugin 
grails clean 
grails compile 
grails publish-plugin --allow-overwrite --noScm --repository=localPluginReleases 

/路徑/到/對myApp /的grails-app/CONF/BuildConfig.groovy:

repositories { 
    mavenRepo "http://localhost:8081/artifactory/plugins-snapshot-local/" 
    mavenRepo "http://localhost:8081/artifactory/plugins-release-local/" 
} 

plugins { 
    compile ":myplugin:0.1" 
}