请在2024年Clojure状态调查中分享您的想法!

欢迎!请参阅关于页面了解如何使用本网站的一些更多信息。

0
tools.deps
关闭

似乎在 :deps/prep-lib:alias 中定义的 :exec-args 属性没有得到尊重,即无法声明为 prep :fn 的默认参数。

在关于 :deps/prep-libDeps and CLI Reference中有以下说明

这些库将按照别名和函数指定的命令执行,就像:clj -T:

关于 -T 的说明

函数调用时使用一个映射,与 -X 执行方式相同,如果别名中存在 :exec-args 则从中构建,如果命令行提供了键值对,则也将包含在内。

这似乎应该是可行的。这是实现、文档还是我的理解中的错误? :-)

以以下备注关闭: 现在在1.11.1.1177中可用

1 答案

0

最佳答案
 
最佳答案

:deps/prep-lib 不使用 :exec-fn:exec-args 是出于设计考虑。

您为什么需要使用参数映射表?

> :deps/prep-lib 不使用 :exec-fn:exec-args 是出于设计考虑。

谢谢!我建议在第一个引用的句子中提及这一点,这样就不会与第二个句子相矛盾。

> 您为什么需要使用参数映射表?

为了参数化通用构建任务实现。请参见 https://github.com/borkdude/tools/pull/5 ,该补丁引发了这个问题 —— 正如您所看到的,我现在为同样的目的创造了一个自定义属性 :-)
我们希望函数是显式的(就像 -T),所以没有 :exec-fn。而且我们不希望从外部视角允许临时参数化,因为准备是一次性为用户进行的,不管哪个项目依赖于它,所以它不能外部参数化。但是支持内部参数(:exec-args)作为在项目中重用或跨项目重用构建函数的方式是有意义的。记为 https://clojure.atlassian.net/browse/TDEPS-231
...