Grails Grails.project.target.level配置没有效果?

Grails Grails.project.target.level配置没有效果?,grails,groovy,groovyc,Grails,Groovy,Groovyc,如何将groovy源代码编译成java 1.8字节码? 我使用的是Grails2.5.4、Java1.8.0\u74 这里我可能遗漏了一些明显的内容,但Grails BuildConfig.groovy中的以下设置似乎不会影响为groovy源文件生成的Java字节码 主要版本49=Java1.5,52=Java1.8(引用:) 然后检查字节码版本: $ javap -verbose target/classes/MyGroovy.class | grep major (standard inpu

如何将groovy源代码编译成java 1.8字节码?

我使用的是Grails2.5.4、Java1.8.0\u74

这里我可能遗漏了一些明显的内容,但Grails BuildConfig.groovy中的以下设置似乎不会影响为groovy源文件生成的Java字节码

主要版本49=Java1.5,52=Java1.8(引用:)

然后检查字节码版本:

$ javap -verbose target/classes/MyGroovy.class | grep major
(standard input):7:  major version: 49

$ javap -verbose target/classes/MyJava.class | grep major
(standard input):7:  major version: 52

$ javap -verbose target/classes/UrlMappings.class | grep major
(standard input):7:  major version: 49

$ javap -verbose target/classes/BootStrap.class | grep major
(standard input):7:  major version: 49
因此,基于上述结果,似乎target.level=bla配置确实影响Java源代码,但不影响Groovy

我的测试设置:

  • Vanilla grails 2.5.4应用程序:“grails创建应用程序foo”
  • 添加了一个java源文件和一个groovy。放置在foo/src中/*
  • 修改BuildConfig.groovy并将目标/源代码级别设置为“1.8”,而不是默认的“1.6”
  • 这些都是步骤。非常简单

我的源代码:

class MyJava {                                         
        String name;                                   
        int age;                                       

        public static String foo() { return "java!"; } 
}                                                      
而且

class MyGroovy {                         
        def name                         
        def age                          

        static foo() { 'groovy!' }       
}                                        

这些是我的(Groovy | Java)插件还是直接来自您的源代码?它们直接来自我自己的代码。我用更多的信息更新了这篇文章,使一切都变得非常清楚。过来看
class MyGroovy {                         
        def name                         
        def age                          

        static foo() { 'groovy!' }       
}