如何在Grails 3.0.3中更改Application.groovy类的位置?

时间:2015-07-23 09:46:17

标签: grails grails-3.0

我使用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以及如何设置它。

4 个答案:

答案 0 :(得分:6)

如果你的package语句与目录结构匹配,那么它应该可以工作。运行./gradlew clean run

答案 1 :(得分:2)

经过2个小时的调查并以杰夫的answer为基础,以下是详细说明:

  1. 我创建了一个名为 foo 的示例应用,它创建了grails-app/init/foo/Application.groovy
  2. 我运行了应用程序(使用grails run-app)并且工作正常
  3. 后来我将Application.groovy的包更改为com.test而不是foo
  4. 失败,错误为Could not find or load main class foo.Application
  5. 我一直在尝试grails clean然后grails run-app,但它没有用,因为gradle build不干净
  6. 我尝试在mainClassName下设置mainClassbuild.gradle,但没有任何效果
  7. 最后,./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守护进程,再次运行一个干净,重新运行。