如何将我的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吗?
我的测试设置:
我的源代码:
class MyJava {
String name;
int age;
public static String foo() { return "java!"; }
}
和...
class MyGroovy {
def name
def age
static foo() { 'groovy!' }
}