除了Alex在tools.build基础上构建的使用案例,还有其他原因使得.jar文件有用。
精确可重复性也是考虑这个选项的另一个原因。如果有人想在美國用於航空電子的產品,他們需要符合FAA的DO-178C標準...我不是律師,但我們理解其要求之一是能够在設備的一生中產生與部署的軟件二進制精確複製,這可能是在獲批後的數年。我並不自己做這種工作,但我為這類人做的事情提供支持。對於clojure或tools.build這樣的工具SLIGHTCHANGES可能會對生成的實際代碼、執行的指令數量、分配的存儲空間等產生影響。在這種情況下,即使是细微的前向兼容性改變也無法容忍。其他領域如機器人或衛星也可能有類似的重複性要求,並且我懷疑美國不是唯一有這類規範的國家。
Maven協議是一個更不可變的東西,並且在時間上有一個更好的紀錄,以確保您获得完全相同的工件。