在日常工作环境中,我们通常有四到五个 JVM 选项是几乎在所有通过我们的deps.edn
文件中的别名来运行的 CLI 调用中都是通用的。目前,我们已将 :jvm-opts
分别复制到每个别名中。
如果我们能对每个别名只是说出 :jvm-opts :common-opts
,并将一个 :common-opts
别名指定了在单一地方的 JVM 选项的话,这将大幅减少重复;甚至更好的情况是,如果 :jvm-opts
向量和混合了关键词和字符串,并将这些关键词视为别名来查找并合并这些数据。
这将使得 :jvm-opts
保持和 :paths
和 :extra-paths
一致,并有助于减少 deps.edn
文件中的重复。
在我们的特定情况下,我们可以这样做
;; under :aliases
:common-jvm-opts ["-Dclojure.core.async.go-checking=true"
"-Dclojure.tools.logging.factory=clojure.tools.logging.impl/log4j2-factory"
"-XX:-OmitStackTraceInFastThrow"
"--illegal-access=warn"]}
;; in a specific alias
:some-alias {
:jvm-opts [:common-jvm-opts "-Dlogged-future=synchronous"]
}