如何在 Grails 3.0.3 中更改 Application.groovy class 的位置?
How to change location of the Application.groovy class in Grails 3.0.3?
我使用控制台在 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以及如何设置。
如果您的包语句与目录结构相匹配,那么它应该可以正常工作。 运行 ./gradlew clean run
.
我在 Win10 上 运行 它 gradlew.bat clean run
对我不起作用,它说没有 gradle 任务 run
对我有帮助的是 gradlew.bat wrapper
,它重新创建了一些 gradle 脚本,然后 grails run-app
起作用了
经过2小时的调查,基于Jeff的,这里有详细的解释:
- 我创建了一个名为 foo 的示例应用程序,它创建了
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.gradle
下设置 mainClassName
或 mainClass
但没有任何效果
最终 ./gradlew clean
使它起作用,所以很明显 grails clean
实际上并没有清理 gradle 构建。
对于windows,只是运行gradlew.bat clean
如果还是不行,杀掉你的 gradle 守护进程,运行 再次清理,重新 运行.
我使用控制台在 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以及如何设置。
如果您的包语句与目录结构相匹配,那么它应该可以正常工作。 运行 ./gradlew clean run
.
我在 Win10 上 运行 它 gradlew.bat clean run
对我不起作用,它说没有 gradle 任务 run
对我有帮助的是 gradlew.bat wrapper
,它重新创建了一些 gradle 脚本,然后 grails run-app
起作用了
经过2小时的调查,基于Jeff的
- 我创建了一个名为 foo 的示例应用程序,它创建了
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.gradle
下设置mainClassName
或mainClass
但没有任何效果
最终 ./gradlew clean
使它起作用,所以很明显 grails clean
实际上并没有清理 gradle 构建。
对于windows,只是运行gradlew.bat clean
如果还是不行,杀掉你的 gradle 守护进程,运行 再次清理,重新 运行.