gpt4 book ai didi

Java条件编译同时支持1.4/1.6

转载 作者:搜寻专家 更新时间:2023-11-01 01:17:38 25 4
gpt4 key购买 nike

我正在处理目前仅使用 Java 1.4 编译的大型遗留代码库。我需要做的一件事是让它与 1.6(现在可能是 1.7)一起工作。

head build 目前不能用 1.6 编译。这有很多原因 - 大多数都很容易修复,比如使用 enum 作为关键字,但我们正在努力让 Oracle/Sun 更新 JDBC(连接接口(interface))以支持不可用的类型在 Java 1.4 中。这意味着如果我进行更改以使用 1.6,则主要生产构建会像 NClob 这样的类中断,因为它们不在 1.4 版本中;如果我不进行更改,我将无法使用 1.6 编译器进行编译。

是否有任何模式支持 java 中的条件编译/构建?到目前为止,我唯一想出的计划是摆弄 ant 构建,以根据构建有条件地换入/换出类。这感觉很糟糕,因此向这里的社区征求意见。

同样,问题的边界是:

  • 需要能够在 1.4 上继续编译 HEAD(恐怕没有 1.6 和 1.4 兼容模式)
  • 还需要一个使用 1.6 编译的单独的 head 构建 - 假设这将需要一些时间(因为它是一个大型代码库),因此第一个要点是允许其他人继续工作并在我们准备时交付其他更改head 为 1.6 兼容性而构建。
  • 这是一棵庞大的代码树;这意味着我们的代码都不是库依赖项,我们不能轻易做到这一点(记住:遗留代码库 :( )
  • 我们不允许分支(出于某种原因,除非我真的必须,否则我不会进入)

非常感谢。

最佳答案

这就是 makefiles/pom.xml/build.xml 被 checkin 的原因。使用你的版本控制系统来创建一个分支。在一个分支中,进行 1.6 兼容性所需的所有更改。在其他分支中,不要。任何给定的分支都将安全地编译为 1.4 或安全地编译为 1.6,没有科学分支试图同时执行这两种操作,这是一个坏主意 (tm)。

关于Java条件编译同时支持1.4/1.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14327207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com