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

欢迎!有关本网站的更多信息,请参阅 关于页面

0
tools.deps
已关闭

看起来 :deps/prep-lib:alias 中定义的 :exec-args 属性没有得到尊重,也就是说,无法为 :fn 声明默认参数。

以下是在 Deps and CLI 参考文档 中关于 :deps/prep-lib 的描述:

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

以及关于 -T 的描述:

函数将使用和 -X 执行方式相同的映射调用,从别名中获取 :exec-args,如果存在,并在命令行上提供键/值。

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

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

1 答案

0

选中
 
最佳答案

:deps/prep-lib 按设计不使用 :exec-fn:exec-args

您为什么需要参数映射?

by
> :deps/prep-lib 按设计不会使用 :exec-fn 或 :exec-args。

谢谢!我建议在引用的第一句话中提及其他,这样就不与第二句话矛盾了。

> 您需要 arg map 的用途是什么?

用于参数化通用的构建任务实现。请参阅https://github.com/borkdude/tools/pull/5,了解引发问题的补丁 - 正如您所看到的,我现在只是为同一目的创建了一个自定义属性 :-)
by
我们希望函数是显式的(例如 -T),因此不需要 :exec-fn。我们不希望允许从外部角度允许 ad-hoc 参数,因为 prep 是用户一次发生的事情,不管依赖哪个项目,所以它不能外部参数化。但是,支持内部参数(:exec-args)确实是一种在项目内部或跨项目重用构建函数的方法。记为https://clojure.atlassian.net/browse/TDEPS-231
...