我完全不知道在Grails 2.2中如何以及在何处指定我自己的插件依赖项.X文档(Understanding Plugin Load Order)表示您可以在插件描述符类MyGrailsPlugin.groovy中指定依赖项。然而,“Upgrading from”章节说明只会考虑pom依赖关系。据我理解这个不清楚的语句,只有我将BuildConfig中的依赖项指定为将被使用的编译依赖项。
使用dependsOn在我的主应用程序中给我带来了一些问题(即使它存在,也无法解决插件中的依赖关系 - 我认为有些外卡问题“def dependsOn = ['jquery-ui':”*> 1.8.24 “]”)。
插件依赖项如何为我工作的唯一方法是在BuildConfig(MyPlugin)中指定它:
grails.project.work.dir = 'target'
grails.project.dependency.resolution = {
inherits 'global'
log 'warn'
repositories {
grailsCentral()
mavenLocal()
mavenCentral()
}
plugins {
build(':release:2.2.1', ':rest-client-builder:1.0.3') {
export = false
}
compile ":resources:1.1.6"
compile ":jquery:1.8.3"
compile ":jquery-ui:1.8.24"
}
}
但我的应用程序使用版本1.2的资源插件。当我运行应用程序时,它总是问我是否要升级到1.1.6。
所以问题是,我应该如何以及在何处指定我的依赖关系。
谢谢, 刁
答案 0 :(得分:0)
实际上,我使用的是grails 2.1.0。在那里我用BuildConfig.groovy中的1.2(runtime ":resources:1.2"
)替换资源。
然后刷新依赖项。它运作良好。
答案 1 :(得分:0)
在阅读了有关Grails插件的更多信息后,我意识到这种行为是有道理的。如果插件指定了其依赖项的某个版本,并且您的项目指定了另一个版本,那么您就会发生冲突。您需要使用以下内容才能从插件中排除依赖性并使用您的:
runtime ":resources:1.2"
compile ':my-plugin:2.0.8', {
exclude 'resources'
}
在这种情况下,插件创建者无法确保他的插件能够在较新版本的依赖项下正常运行。
关于资源插件依赖性。在我看来,最好使用以下
compile ":resources:1.1.6" {
export = false
}
不包含插件的依赖项。这应该在您定义一些ApplicationResources.groovy时使用。如果您在插件中使用此插件中的某些内容,则不应排除资源插件...
在我看来,你应该在BuildConfig.groovy
中指定你的插件依赖项希望在Grails版本中进一步改进这些内容。
Burt的进一步阅读: http://www.slideshare.net/burtbeckwith/plugins-21828912