首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有安装旧的java版本的情况下,用maven+netbeans瞄准旧的java版本?

在没有安装旧的java版本的情况下,用maven+netbeans瞄准旧的java版本?
EN

Stack Overflow用户
提问于 2014-11-08 06:20:42
回答 2查看 65关注 0票数 0

我希望在使用java.nio.file.*等新特性时,Netbeans和编译过程中出现错误,而Java 6中还不存在这些错误。仅仅在maven编译器插件配置中指定源代码和目标版本是行不通的: maven编译源代码,netbeans不关心使用非Java-6的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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,这解释了为什么路径是参数化的,就像您在示例中看到的那样。

票数 1
EN

Stack Overflow用户

发布于 2014-11-08 07:27:28

配置引导路径需要一个本地化的pom.xml,指向特定于机器的目录,更糟糕的是。

代码语言:javascript
复制
        <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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26814443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档