boot.properties 中需要哪些信息?

What information is required in boot.properties?

我想为使用 Boot 的项目指定 Clojure 版本。根据 Boot Wiki,执行此操作的方法是在我的项目根目录中的 boot.properties 文件中为 BOOT_CLOJURE_VERSION 提供一个值。所以我这样做了:

$ cat boot.properties
BOOT_CLOJURE_VERSION=1.7.0

它似乎工作得很好:

$ tail -2 ~/.boot/boot.properties
BOOT_VERSION=2.5.5
BOOT_CLOJURE_VERSION=1.8.0
$ cat build.boot
(deftask version []
  (println "Clojure" (clojure-version))
  (println "Boot core" *boot-version*)
  (println "Boot app" *app-version*))
$ boot version
Clojure 1.7.0
Boot core 2.5.5
Boot app 2.5.5

但是,同一个 wiki 页面特别指出要像这样创建 boot.properties 文件:

$ boot -V > boot.properties

这在开头添加了两行,在我看来像是注释,在末尾添加了一行指定引导版本。为我的项目指定启动版本没有问题,但维基页面让它听起来好像是必需的:

Note: When using boot.properties file you have to also pin the project to specific Boot version as the file must specify both variables.

我有点困惑为什么页面特别说要将这三行添加到 boot.properties 而忽略它们似乎不会造成任何问题。此外,如果我使用修订控制,我认为不需要在 boot.properties 中放置时间戳。可以省略这些行吗?如果不是,为什么需要它们?

这很可能是 wiki 信息过时的情况。来自 source:

// BOOT_VERSION is decided by the loader; it will respect the
// boot.properties files, env vars, system properties, etc.
// or it will use the latest installed version.

我想您可以考虑锁定每个项目的 Clojure 和 Boot 版本,因为这将防止将来可能因不兼容版本而出现的任何问题。

Boot 添加的 2 行注释仅供参考,可以安全地省略。