我希望在使用java.nio.file.*等新特性时,Netbeans和编译过程中出现错误,而Java 6中还不存在这些错误。仅仅在maven编译器插件配置中指定源代码和目标版本是行不通的: maven编译源代码,netbeans不关心使用非Java-6的东西。
发布于 2014-11-08 06:28:23
在用Java 7和/或8编译时,设置源代码版本有两种不同的影响。无论您是否安装了Java 6,将源代码级别设置为6将阻止您使用一些特性,如things、多重catch或lambda表达式。但是,这本身并不会阻止您使用新版本中定义的API。
要获得后者,还需要指定引导类路径。以下代码显示了这方面的一个示例。
https://github.com/antlr/antlr4/blob/master/pom.xml#L114-L115
在本例中,引导类路径的使用仅限于使用sonatype-oss-release完成的编译,这只要求机器只为发行版安装旧的JRE (不一定是JDK)。这个设置使新用户更容易贡献,尽管这意味着在合并之前,我必须使用版本构建来双重检查拉请求。我相信平衡对于项目的长期可维护性是成功的.
请记住,OSX使用与Linux和Windows使用的不同位置甚至不同的文件名安装Java 6,这解释了为什么路径是参数化的,就像您在示例中看到的那样。
发布于 2014-11-08 07:27:28
配置引导路径需要一个本地化的pom.xml,指向特定于机器的目录,更糟糕的是。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>(,1.7)</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>https://stackoverflow.com/questions/26814443
复制相似问题