我有一个正在修改的应用程序,但我遇到了问题,不知道去哪里找。
当我第一次开始尝试编译这个问题时,一些 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/