能否在deps.edn中配置*warn-on-reflection*全局反射警告参数?
Clojure CLI 全局配置编译参数的方法
以下方案可实现和 Leiningen profile 中全局设置 warn-on-reflection 等同的效果,无需在每个文件单独配置参数,作用域为当前命令的整个运行周期,适合测试、编译等特殊场景批量启用参数。
单次编译临时启用
直接在原有编译命令前追加设置全局变量的表达式即可,命令格式如下:clojure -M -e "(set! *warn-on-reflection* true)" -e "(compile 'some.namespace)"项目级复用配置
在项目根目录的deps.edn文件中添加自定义 alias,即可在需要的场景一键调用:{:aliases ;; 启用反射警告的通用alias,可和其他alias组合使用 {:warn-reflect {:main-opts ["-e" "(set! *warn-on-reflection* true)"]} ;; 带反射警告的专用编译alias :compile-with-reflect-warn {:main-opts ["-e" "(set! *warn-on-reflection* true)" "-e" "(compile 'some.namespace)"]}}}使用时直接执行对应命令即可:
- 通用复用:
clojure -M:warn-reflect:test(跑测试时全局启用反射警告) - 编译专用:
clojure -M:compile-with-reflect-warn
- 通用复用:
全局生效配置
如果需要所有本地项目都可以使用该配置,直接修改用户目录下的.clojure/deps.edn,添加上述:warn-reflectalias即可,所有项目都可以通过携带该alias启用对应参数。
内容的提问来源于stack exchange,提问作者Kineolyan
相关产品推荐
相关产品推荐

