我正在开始一个新的模块化Grails应用程序。我正在创建一个域插件,当然还需要一个用户/人员域。
我是否将Spring Security Core插件添加到域中,只是为了生成其用户域?如果是这样,我是否也将插件添加到主应用程序。或者由于主应用程序将使用域插件,它是否会继承Spring Security插件?
在任何一种情况下,有什么我需要知道或做的不同,如果我只有1个域对象的应用程序?
更新
我将其添加到主应用程序的buildconfig中:
plugins {
. . .
compile ":spring-security-core:1.2.1"
. . .
}
grails.plugin.location.astdomain ="C:\\src\\astool\\astdomain"
在主应用中执行全部生成无效。我找不到的域名。所以我在域插件中生成了所有内容,然后将生成的代码移动到主应用程序中。即使生成的代码与域具有相同的包,我仍然会收到编译错误,说明找不到域。
答案 0 :(得分:0)
查看plugins部分。我相信分发过程已经改变,因为Release plugin似乎正在成为主流/ Grails 2.0的事实标准。
这完全取决于你如何设置它。您应该能够将spring安全插件添加到您的插件中(这实际上就是您在构建模块化应用程序时所做的,将一个较大的插件构建为一系列插件)并指定插件依赖项,构建顺序等等。
使用正确的设置,您应该能够编写自包含的插件,在引用插件的主应用程序上运行grails install-plugin,然后使用包解析来访问主插件的域类app的其他课程。
答案 1 :(得分:0)
事实证明,唯一的问题是我将插件包含在错误的位置。
我有
grails.project.dependency.resolution = {
. . .
plugins {
. . .
compile ":spring-security-core:1.2.1"
. . .
}
grails.plugin.location.astdomain ="C:\\src\\astool\\astdomain"
}
但它需要包含在grails.project.dependency.resolution = {。 。 }:
grails.plugin.location.'astdomain' ="../astdomain"
grails.project.dependency.resolution = { . . }
另请注意,我现在有'astdomain'的引号。我不确定这是否重要,但我看到其他人这样做了。
我也使用更通用的语法:“../astdomin”。但“C:......”也有效。