我有一个用Gradle构建的项目,有3个子项目:拖网渔船,适应性,临街。 Trawler是Groovy / Java,adaptrice是Grails 3.1.7应用程序,frontage是adaptrice使用的Grails 3插件。
顶部 settings.gradle 表示include 'trawler', 'adaptrice', 'frontage'
, adaptrice / build.gradle 包含,
grails {
plugins {
compile project(':frontage')
}
}
所有这些都是根据Grails文档。一切都有效 - 差不多。插件描述符(类doWithSpring
)中的FrontageGrailsPlugin
方法如下所示,
Closure doWithSpring() { {->
entityPropGrabberFactory(EntityPropGrabberFactory) {
constraintsEvaluator = ref(ConstraintsEvaluator.BEAN_NAME)
proxyHandler = ref('proxyHandler')
}
}}
当我为adaptrice Grails应用程序运行应用程序时,它永远不会被执行。当使用假定注入的bean时,有一个NPE。如果我将doWithSpring
的主体移动到adaptrice Grails应用程序的 ... / spring / resources.groovy ,那么它确实有效。
所以我的问题是,是什么导致Grails 3插件描述符中的doWithSpring
被执行?当插件也是一个子项目时,我还需要做些什么吗?