6

我有

  1. 创建了新的 Grails 2.4.3 项目
  2. 创建TestController
  3. 设置grails.reload.enabled = trueBuildConfig.groovy
  4. 运行应用程序grails -reloading run-app

我的控制器操作代码:

def index() {
    render "test"
}

当我将字符串更改testtest2- 我在控制台中看到(在 Eclipse 中):

..................
|Compiling 1 source files

重新加载页面后,我看到test2- 好的。

但是当我尝试添加新方法时:

def test3() {
    render "test3"
}

我懂了:

错误结果

为什么?为什么连网址都没有?

示例 - 操作不存在: 在此处输入图像描述

有趣的是 - 当我创建一个全新的控制器index时,新创建的控制器的动作会起作用......

编辑

过了一会儿,我决定使用 spring-boot,事实上 - 它也不起作用。我认为 springloaded 是这里的问题,因为它没有在@Controller

4

3 回答 3

4

我在github repo上问过同样的问题。

似乎最新的弹簧加载 SNAPSHOT工作正常

但它必须集成到 Grails 中——不幸的是,也许在下一个版本中 :(

于 2014-09-10T12:27:01.217 回答
1

我冒昧地向 Grails 报告了这个问题

于 2014-09-16T17:33:49.503 回答
1

适合我的解决方案:

1) 版本:

  • IDE:Intellij IDEA 14.1.3
  • JDK:jdk1.7.0_25
  • 圣杯:2.5.0

2) 在 BuildConfig.groovy 上:

grails.reload.enabled = true
grails.project.fork = [
        test: false,
        run: false,
]

3)本来我的代码是在grails 2.4.4上编译的,所以升级到2.5.0。我对插件或任何东西的版本更改没有任何问题。我的猜测是这行得通,因为它使用了更高版本的弹簧加载。脚步:

  • 设置 grails 版本 2.5.0
  • 干净的
  • 删除目录工作(只是为了确定,我真的不知道这是否是一个好习惯)
  • 编译和/或转到数字 4

4)用这个配置调试idea:run-app -reloading


完美运行,没有分叉调试,启用重新加载,重新加载后没有控制台错误,所有断点即使在代码更改后也能正常工作!

于 2015-06-18T19:18:17.633 回答