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

时间:2016-07-18 22:41:20

标签: grails groovy groovyc

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

我使用的是Grails 2.5.4,Java 1.8.0_74

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

主要版本49 = Java 1.5,52 = Java 1.8(引用:how to check the jdk version used to compile a .class file

grails.project.target.level = 1.8
grails.project.source.level = 1.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 app:' grails create-app 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!' }       
}                                        

0 个答案:

没有答案