Xtend强制java 7语言级别

时间:2016-09-06 15:57:42

标签: java intellij-idea xtend

我使用getaddrinfo()在intellij中使用Xtend。我的项目语言级别设置为Java 8,Xtend可以很好地编译为Java 8(例如使用lambda表达式)。

由于特定原因,我需要Xtend生成Java 7代码,而不更改剩余项目(Java 8)的语言级别。

在Xtend项目设置中,我可以设置语言级别,但忽略此选项。我相信它会被忽略,因为剩下的项目仍然使用JDK 8和Java 8语言级别。

是否有强制Xtend使用其他语言级别的选项?

2 个答案:

答案 0 :(得分:0)

关于上述问题我没有太多细节,但假设项目是基于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>

答案 1 :(得分:0)

Xtend-Compiler中至少有一个bug,它可以防止交叉编译到JDK的较低版本,而不是项目类路径中的JDK。

示例:

#[ 42, 43 ].forEach[ println(it) ]

如果项目配置为在类路径中配置Java-8类,则生成的Java代码将自动使用Java-8 API ({{1默认方法forEachIterable,...)

这是任何源/目标级别设置的 idependent