daociyiyou 2016-11-07
Grails-3.1.12 版本升级
最近在做基于Groovy语言,Grails框架的项目,从刚开始的Grails-3.1.5一直使用到现在的Grails-3.1.12,最近出现更高本版的Grails-3.1.13,于是继续升级发现,原有项目使用新本的Grails会启动报错。
$ grails run-app |Running application... ERROR grails.boot.config.tools.ClassPathScanner - The application defines a Groovy source using the default package. Please move all Groovy sources into a package. Configuring Spring Security Core ... ... finished configuring Spring Security Core
启动时出现Error,项目可以启动,但是会随之出现一系列问题。
开始以为是新版的Grails的一些依赖包有问题,后来发现并不是,仔细排查找到问题所在。下面是Grails-3.1.12和Grails-3.1.13生成项目的结构图
是否已经发现问题的所在?没错,BootStrap.groovy文件的位置有了变化,于是将其变化位置,并且需要加上包声明
package grails_3_1_13 class BootStrap { def init = { servletContext -> } def destroy = { } }
重新启动项目,正常启动。
注意:我的项目当时是有两个文件发生了位置变化,一个是/init/BootStrap.groovy,还有一个是/controllers/UrlMappings.groovy,请根据各自情况修改