我使用console:
在Grails 3.0.3中创建了新的应用程序grails create-app hello
并且运行正常:
grails run-app
但是现在,我想将Application.groovy所在的包名称(原始位置为hello / grails-app / init / hello / Application.groovy)更改为其他内容,例如hello / grails-app / init /foo/Application.groovy。 当我在更改后尝试启动应用程序时,存在异常:
Error: Could not find or load main class hello.Application
Application.groovy文件的来源(由grails生成,包名除外)
package foo
import grails.boot.GrailsApp
import grails.boot.config.GrailsAutoConfiguration
class Application extends GrailsAutoConfiguration {
static void main(String[] args) {
GrailsApp.run(Application, args)
}
}
任何提示我应该在哪里更改某些内容才能重命名此包?
编辑: 在文档中有一个片段:
grails-app/init/PACKAGE_PATH/Application.groovy The Application class used By Spring Boot to start the application
但仍然不知道什么是PACKAGE_PATH以及如何设置它。
答案 0 :(得分:6)
如果你的package语句与目录结构匹配,那么它应该可以工作。运行./gradlew clean run
。
答案 1 :(得分:2)
经过2个小时的调查并以杰夫的answer为基础,以下是详细说明:
grails-app/init/foo/Application.groovy
grails run-app
)并且工作正常Application.groovy
的包更改为com.test
而不是foo
Could not find or load main class foo.Application
grails clean
然后grails run-app
,但它没有用,因为gradle build不干净mainClassName
下设置mainClass
或build.gradle
,但没有任何效果最后,./gradlew clean
让它发挥作用,很明显grails clean
实际上并没有清理gradle构建。
对于Windows ,只需运行gradlew.bat clean
答案 2 :(得分:0)
我在Win10上运行它而gradlew.bat clean run
对我不起作用,它说没有像run
这样的gradle任务
帮助我的是gradlew.bat wrapper
,它重新创建了一些gradle脚本,然后grails run-app
工作了
答案 3 :(得分:-1)
如果仍然不起作用,请杀死你的gradle守护进程,再次运行一个干净,重新运行。