java - 编译一个版本 - eclipse,maven

标签 java eclipse maven compiler-construction

我最近被一些代码刺痛了,这些代码使它在我们的部署周期中没有抛出任何编译错误(我们认为)......

有问题的代码正在使用自 Java 1.7 以来的新静态方法 Integer.compare

服务器环境运行在Java 1.6上。虽然我们的开发环境安装了 Java 1.7。

我们的假设是,将项目首选项设置为 JavaSE-1.6 合规性至少会给我们提供有关代码的编译警告,但是在 eclipse 中看不到任何警告或错误。

项目 > 属性 > java 编译器 > JDK 合规性 > 在 java 构建路径上使用来自执行环境“JavaSE-1.6”的合规性

其次,我们使用 maven 编译最终部署。 pom 明确指示符合 1.6 编译器:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <optimize>true</optimize>
    </configuration>
</plugin>

然而,maven 构建成功运行并出现问题代码。

当代码在比它正在编译的版本更早的 Jvm 中无法运行时,我如何告诉 maven 和 eclipse 都失败?

谢谢,保罗。

最佳答案

当您使用不向后兼容的 API 时,使用 Maven 动物嗅探器插件来告诉您。我还被告知 Java 1.7 具有此功能,但我个人没有这方面的经验。

关于java - 编译一个版本 - eclipse,maven,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763888/

相关文章:

java - 如何将 java swing 类导入 intellij 的 GUI 构建器中?

Android Manifest 实现问题

java - Maven 更新项目在 Eclipse 中做了什么?

java - 如何在 Java 中对 ArrayList 中的对象中的元素进行排序

java - 如何整合beanshell

java - Apache Flink - 使用带有泛型类型参数的类

java - 使用国外maven模块的资源?

java - 如何根据用户当前位置从解析中获取数据?

java - 刷新时如何保留 JFace TableViewer 中的选择?

java - 无法解析客户的存储库元数据