请分享一下您的想法,在2024 Clojure 发展状况调查!

欢迎!请查看关于页面了解更多关于如何使用本站的信息。

0
tools.deps

如果不是,它(或类似的功能)能被视为API吗?这对于像Cursive这样的嵌入tools.deps的项目获取项目的类路径信息非常有用,而无需创建大量文件。

如果-main将是唯一得到官方认可的公共API,那么最好以某种方式抽象System/exit的调用,以便内嵌工具可以捕捉进程退出而不会被杀死。deps.clj展示了如何进行这种抽象的一个例子:https://github.com/borkdude/deps.clj/blob/master/deps.clj#L34-L39

1 答案

0

不,这个类不是公共API,它已经频繁地以破坏性的方式更改(并且即将再这样做)。我计划将其从tools.deps中移除并完全移到安装程序项目,因为它与CLI相关,而不是tools.deps的一部分。

实际上,您应该通过clojure.tools.deps/create-basis来处理大多数功能。我了解到make-classpath2/run-core与create-basis之间存在一些差距,我计划通过增强create-basis返回的一些数据来缩短这段距离(特别是在添加基础配置和合并argmap以提供对jvm / main / exec信息的访问)。

之后,这些之间的主要区别将是:1)支持过时的CLI功能(其中一些现在正在消失,一些稍后),2)支持-T选项,但这应该在deps api中直接支持,但还需要等一段时间。最终,make-classpath2将使用create-basis,这就是它的发展方向。

有没有任何地方有调用create-basis的示例,以支持工具?观察代码,我现在不能简单地内联`run-core`,因为那还没有调用`create-basis`,并且跟`run-core`和`create-basis`的复杂关系很难理解。

很难知道如何支持它,而不会在未来不久打破。
我不知道这是否是进行这种谈话的最佳带宽方式。如果对话会帮到你,你知道怎么找到我,我很乐意把那篇公开文章写出来。这不是秘密知识,但它取决于上下文,我并不完全清楚你需要做什么。

此外,我目前有一些工作上的变动,这会影响一些答案,特别是在exec argmap属性方面。
...