除了Alex在tools.build上构建用例之外,还有其他原因使得.jar文件很有用。
精确可重复性是考虑这一点的另一个原因。如果有人想在美国开发用于航空电子设备的产品,他们需要符合FAA的DO-178C... 我不是律师,但我的理解是其中一个要求是能够在设备终身期间产生软件部署的二进制精确复制品,这可能在批准后数年后。我自己不做这种工作,但我做那些支持这类人士的事情。对clojure
或tools.build
等工具的微小更改可能会影响产生的/执行的精确代码、执行指令的数量、分配的内存量等。在这种情况下,即使是微小的向后兼容性更改都无法容忍。其他领域如机器人或卫星也可能有类似的可重复性要求,我相信美国并非唯一实施此类法规的国家。
Maven坐标是一个更不可变的东西,它在时间上的记录更好,可以为您提供精确相同的工件。