gpt4 book ai didi

clojure - 有没有办法在 leinegen 中设置系统属性?

转载 作者:行者123 更新时间:2023-12-03 15:10:03 24 4
gpt4 key购买 nike

启动 lein 任务(实际上是 测试 ,默认使用 :test 配置文件运行)。我想做的是从相当于

java -Dproperty1=value -Dproperty2=value2 task



网上有一些引用资料表明这应该可以正常工作:

项目.clj:
...
:profiles {:test {:jvm-opts ["-Dproperty1=value" "-Dproperty2-value"]}}

这在我的测试运行程序中被忽略了。配置文件是正确的,如果我插入一些实际的 jvm 参数(例如“-XX:+PrintGC”之类的东西)它工作正常。但似乎没有拿起系统属性。有没有正确的方法来做到这一点?

最佳答案

为其他为此苦苦挣扎的人找到了答案:

由于我需要在开始该过程之前注入(inject)环境属性,因此我执行了以下操作:

添加 shell插件到您的 project.clj:

:plugins [[ lein-shell "0.4.1"]]

然后将准备任务添加到您的个人资料中。但是有一个皱纹 - 你认为你可以这样做:

:profiles {:test {:prep-tasks [["shell" "export" "foo=bar"]]}}

但这不起作用,因为 shell 看不到导出命令 - 你得到“没有这样的文件”,因为它是 bash 的一部分并且没有名为“export”的可执行文件。所以我创建了一个名为“setenv.sh”的脚本并从 shell 运行它:
:profiles {:test {:prep-tasks [["shell" "./test/setenv.sh"]]}}

编辑:实际上这不起作用,变量不会转移到子流程中。把它留在这里是因为它可能对某人有用。

编辑:实际上必须创建一个调用导出然后运行 ​​lein 的 shell 脚本。绝对不是最优雅的解决方案。

关于clojure - 有没有办法在 leinegen 中设置系统属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32323572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com