Xtend force java 7 语言等级
Xtend force java 7 language level
我在 Xtend-plugin 的 intellij 中使用 Xtend。我的项目语言级别设置为 Java 8,Xtend 可以很好地编译到 Java 8(例如使用 lambda 表达式)。
由于特定原因,我需要 Xtend 生成 Java 7 代码,而无需更改我剩余项目的语言级别 (Java 8)。
在Xtend项目设置中我可以设置语言级别,但是这个选项被忽略了。我相信它被忽略了,因为剩余的项目仍然使用 JDK 8 和 Java 8 语言级别。
是否有一个选项可以强制 Xtend 使用与源代码不同(较低)的语言级别?
关于上述问题我没有太多细节,但假设如果该项目是基于 Maven 的,那么您可以在 pom.xml
中进行目标编译
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
Xtend-Compiler 中至少有一个 bug 可以防止交叉编译到比项目类路径中的 JDK 版本更低的版本。
示例:
#[ 42, 43 ].forEach[ println(it) ]
如果项目配置为在类路径中有Java-8 类,生成的Java-代码将自动使用Java-8 API(forEach
默认方法 Iterable
、Consumer
、...)
这是任何 source/target 级别设置的 独立。
我在 Xtend-plugin 的 intellij 中使用 Xtend。我的项目语言级别设置为 Java 8,Xtend 可以很好地编译到 Java 8(例如使用 lambda 表达式)。
由于特定原因,我需要 Xtend 生成 Java 7 代码,而无需更改我剩余项目的语言级别 (Java 8)。
在Xtend项目设置中我可以设置语言级别,但是这个选项被忽略了。我相信它被忽略了,因为剩余的项目仍然使用 JDK 8 和 Java 8 语言级别。
是否有一个选项可以强制 Xtend 使用与源代码不同(较低)的语言级别?
关于上述问题我没有太多细节,但假设如果该项目是基于 Maven 的,那么您可以在 pom.xml
中进行目标编译<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
Xtend-Compiler 中至少有一个 bug 可以防止交叉编译到比项目类路径中的 JDK 版本更低的版本。
示例:
#[ 42, 43 ].forEach[ println(it) ]
如果项目配置为在类路径中有Java-8 类,生成的Java-代码将自动使用Java-8 API(forEach
默认方法 Iterable
、Consumer
、...)
这是任何 source/target 级别设置的 独立。