java - 在 Grails 应用程序中使用 Java 代码导致编译永无止境循环

标签 java groovy grails

我有一个正在修改的应用程序,但我遇到了问题,不知道去哪里找。

当我第一次开始尝试编译这个问题时,一些 groovy 文件的导入没有正确解析。经过一些追踪,我发现包没有按照 groovy 文件所期望的方式定义。因此,我更改了包以匹配 .groovy 文件所期望的内容,并且当我运行 grails test run-app 时,它使用 groovyc 进行编译,并且没有给出任何错误。问题是,它似乎在无限地重新编译我的 java 源文件。我只是在猜测,因为我只有 12 个 java 文件,这就是它所说的正在编译的数量。这是输出

 Running script C:\Program Files\grails\grails-1.1.2\scripts\RunApp.groovy
 Environment set to test
[mkdir] Created dir: C:\Users\dcole\SKillsDB\trunk\web-app\plugins\help-balloons-1.1
 [copy] Copying 7 files to C:\Users\dcole\SKillsDB\trunk\web-app\plugins\help-balloons-1.1
 [copy] Copied 3 empty directories to 1 empty directory under C:\Users\dcole\.grails\1.1.2\projects\trunk\resources
[mkdir] Created dir: C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
[groovyc] Compiling 12 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
[groovyc] Compiling 72 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
[mkdir] Created dir: C:\Users\dcole\.grails\1.1.2\projects\trunk\resources\grails-app\i18n
 [native2ascii] Converting 12 files from C:\Users\dcole\SKillsDB\trunk\grails-app\i18n to C:\Users\dcole\.grails\1.1.2\projects\trunk\resources\grails-app\i18n
 [copy] Copying 1 file to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
 [copy] Copying 1 file to C:\Users\dcole\.grails\1.1.2\projects\trunk\resources
 [copy] Copied 2 empty directories to 2 empty directories under C:\Users\dcole\.grails\1.1.2\projects\trunk\resources
 [copy] Copied 7 empty directories to 5 empty directories under C:\Users\dcole\.grails\1.1.2\projects\trunk\resources
 [copy] Copying 1 file to C:\Users\dcole\.grails\1.1.2\projects\trunk
Running Grails application..
Server running. Browse to http://localhost:8080/SkillsDB
[groovyc] Compiling 11 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
[groovyc] Compiling 12 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
Running Grails application..
Server running. Browse to http://localhost:8080/SkillsDB
[groovyc] Compiling 11 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
[groovyc] Compiling 12 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
Running Grails application..
Server running. Browse to http://localhost:8080/SkillsDB
[groovyc] Compiling 11 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
[groovyc] Compiling 12 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
Running Grails application..
Server running. Browse to http://localhost:8080/SkillsDB
[groovyc] Compiling 11 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
[groovyc] Compiling 12 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
Running Grails application..
Server running. Browse to http://localhost:8080/SkillsDB
[groovyc] Compiling 11 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
[groovyc] Compiling 12 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
Running Grails application..
Server running. Browse to http://localhost:8080/SkillsDB
[groovyc] Compiling 11 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes
[groovyc] Compiling 12 source files to C:\Users\dcole\.grails\1.1.2\projects\trunk\classes

我应该从什么开始追踪来解决这个问题?它几乎看起来像一个循环依赖?我是 grails 的新手,所以这对我来说是全新的。

最佳答案

当类名与文件名不匹配,或者包与文件夹结构不匹配时,就会发生这种情况。所以你一定还需要对包 <-> 文件夹结构进行一些更改。例如com.foo.bar.StringUtils 必须在 src/java/com/foo/bar/StringUtils.java 或 src/groovy/com/foo/bar/StringUtils.groovy 中

当哪些文件正在重新编译不太明显时,您可以按上次编辑或创建日期对编译目录中的类进行排序。最新的文件将排在第一位,并且将成为罪魁祸首。

关于java - 在 Grails 应用程序中使用 Java 代码导致编译永无止境循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3704133/

相关文章:

java - 在数组中存储未知数量的数字

linux - 为什么 groovysh 需要 X 显示?

Eclipse-Groovy 插件 : Adding new Groovy compiler versions

gradle - 如何使用Gradle从JaCoCo测试报告中排除隐式Groovy闭包类

grails - 单选按钮,真或假

java - 在 grails 服务器内运行 .sh 文件

java - 减少 IF 语句 java

java - 如何更改Tomcat开发环境中Spring Boot属性默认路径

java - 如何使用快速生产者正确排空队列?

grails - 如何在 session 中存储 quartz 作业的结果?