使用Grails 2.3.8
在eclipse GGTS中创建了一个插件;标准插件,除了以下依赖项(rabbitmq)之外没有任何变化:
//BuildConfig (plugin)
plugins {
compile(":rabbitmq:1.0.0")
build(":release:3.0.1",
":rest-client-builder:1.0.3")
}
插件依赖项已刷新,编译和打包,然后以'myplugin:mq:0.1'
存储在本地maven存储库中,并进行验证。
创建了Grails项目,为项目添加了插件:
//BuildConfig (project)
plugins {
build ":tomcat:7.0.52.1"
compile "myplugin:mq:0.5" //<-plugin here
compile ":scaffolding:2.0.3"
compile ':cache:1.1.2'
runtime ":database-migration:1.4.0"
runtime ":jquery:1.11.0.2"
}
依赖关系已成功刷新。
我无法从myplugin:mq
不确定为什么依赖项没有被应用程序继承,我没有使用exported = false
或任何东西来抑制插件依赖。
而不是eclipse,我切换到命令行(JDK 1.7 + 2.3.8,也尝试过2.3.7),手动清理,刷新,编译,但仍然无法解决rabbitmq类:
| Error Compilation error: startup failed:
C:\X-projects\ws-ggts_36\rest-api-doc-test\grails-app\controllers\org\raffian\restapi\controller\FundController.
@ line 8, column 1.
import org.springframework.amqp.rabbit.core.RabbitAdmin
^
我改变了群组和工件ID:
mvn install:install-file
-Dfile=grails-test-plugin-0.5.zip
-DgroupId=myplugin
-DartifactId=mq
-Dversion=0.5
-Dpackaging=zip
-DgeneratePom=true
仔细检查打包的插件后,ZIP只包含这些文件。我怀疑这是问题,因为缺少rabbitmq库,并且plugin.xml或插件描述符不包含对rabbitmq依赖项的引用,因此应用程序甚至不知道这些依赖项。但为什么插件不包含自己的依赖?
class TestPluginGrailsPlugin {
// the plugin version
def version = "0.5"
// the version or versions of Grails the plugin is designed for
def grailsVersion = "2.3 > *"
// resources that are excluded from plugin packaging
def pluginExcludes = [
"grails-app/views/error.gsp"
]
def title = "Test Plugin Plugin" // Headline display name of the plugin
def author = "Your name"
def authorEmail = ""
def description = 'desc'
def documentation = "http://grails.org/plugin/test-plugin"
def doWithWebDescriptor = { xml ->}
def doWithSpring = {}
def doWithDynamicMethods = { ctx -> }
def doWithApplicationContext = { ctx -> }
def onChange = { event -> }
def onConfigChange = { event -> }
def onShutdown = { event -> }
}
答案 0 :(得分:1)
要将Grails插件发布到本地maven repo,请使用以下命令:
grails maven-install
来自release
插件,默认情况下可用于所有新创建的Grails插件。
最后,here is how如果需要,您可以修改插件的groupId
。