Clojure 命令行工具可用于启动 Clojure repl、使用 Clojure 和 Java 库以及启动 Clojure 程序。
此处描述了最近的官方版本。预发布版本和旧版本可以在仓库变更日志中找到。
将默认 Clojure 版本更新为 1.11.2
创建基准的 Clojure -X:deps 程序现在接受 :dir 选项以指定要使用的目录上下文
更新了 tools.deps 和 tools.deps.cli 至最新版本
CLI 版本现在发布到 GitHub 上的https://github.com/clojure/brew-install
下载存档仍然可用,但将被视为镜像(并以这种方式在 brew 中配置)
使用 -X 或 -T 接受 -
作为尾随参数以从 stdin 读取其余参数
在 Windows 安装程序中,隐藏下载进度条
TDEPS-247 - 修复了具有大量扇出的依赖项上的 StackOverflow 错误
TDEPS-249 - 在依赖项扩展期间正确推送/弹出线程绑定
TDEPS-227 - 在 resolve-deps 结束时关闭依赖项扩展线程
TDEPS-248 - 使 tags
在脱机时返回已知标签
使用tools.deps 0.18.1354
修复了 -Spom 的回归错误
更新了帮助信息,包括 -X:deps mvn-pom 而不是 -Spom(最终将被移除)
使用tools.deps 0.18.1335
TDEPS-245 - 修复了 -X:deps find-versions 使用非规范化库名称时的错误
使用tools.deps 0.18.1331
使本地依赖项版本可根据路径进行比较
使用tools.deps 0.18.1317
使用tools.deps 0.18.1308
切换到通过基准 :argmap 传递执行参数
用于 -X/-T 的函数执行协议支持
使用tools.deps 0.17.1297
添加了一个环境变量,可以将其设置为临时允许对 http 存储库的支持:CLOJURE_CLI_ALLOW_HTTP_REPO
删除对 -R 和 -C 的已弃用支持
清理了 repl 支持 init-opts 方面的帮助文本
使用tools.deps 0.16.1285
TDEPS-234 - 默认情况下始终包含 -XX:-OmitStackTraceInFastThrow
使用tools.deps 0.16.1264
在 :mvn/repos 映射中添加了设置发布和快照策略的支持
TDEPS-101 在 -Spom 和 -X:deps mvn-pom 中输出存储库策略
使用tools.deps.alpha 0.15.1254
TDEPS-233 来自过时 jar 检查更改的 bash 脚本修复
在帮助和手册页中添加了一些缺少的项目
TDEPS-70 - 检测类路径中缺少的 jar 并自动下载
TDEPS-232 - 添加通用 posix 安装程序
TDEPS-200 - 清理默认用户 deps.edn
TDEPS-219 修复了 -X:deps find-versions
找不到以字母开头的 Maven 版本的问题
将 :n 选项添加到 -X:deps find-versions
并默认为 8
在 -X:deps prep
期间,如果存在,使用正在准备的别名的 :exec-args
在 -X:deps prep
期间,如果需要,也准备当前项目,将 :current 标志添加到准备当前项目中,默认为 false
修复了 clojure.tools.cli.api/prep 中 deps/prep-libs! 的错误调用
改进本地依赖项目录丢失时的错误消息
对于下游工具,添加了新的知名位置以查找最新的稳定工具版本
使用tools.deps.alpha 0.15.1244
TDEPS-165 使用环境变量 CLJ_JVM_OPTS 将 JVM 属性传递给内部类路径构建过程
添加支持以将常见的 JAVA_OPTS 环境变量作为 JVM 属性包含在用户程序执行中
TDEPS-228 添加对自动推断的 Sourcehut git url 的支持
更新 aws-api、Maven 等依赖项版本
使用tools.deps.alpha 0.14.1222
clj -Ttools install-latest
- 优化版本过滤、排序和选择最新版本的方式
更新到 tools.tools v0.2.8
使用tools.deps.alpha 0.14.1212
添加 clj -Ttools install-latest
api 函数和示例
安装工具:clj -Ttools install-latest :lib io.github.clojure/tools.deps.graph :as graph
更新工具:clj -Ttools install-latest :tool graph
修复了 1.11.1.1119 中 clj -X:deps find-versions
的回归错误
clj -X:deps find-versions
的输出现在提供 :git/tag 和 :git/sha
更新到 tools.tools v0.2.6
使用tools.deps.alpha 0.14.1205
修复了使用传递性本地依赖项时 -X:deps prep
的目录上下文
使用tools.deps.alpha 0.14.1194
修复了 TDEPS-213 更改中的错误
使用tools.deps.alpha 0.14.1189
TDEPS-213 - 添加 -X:deps aliases
以列出可用的别名
TDEPS-226 - 更细致的 s3 下载错误处理
当无法推断 git url 时,提供更好的错误消息
使用tools.deps.alpha 0.14.1185
TDEPS-153 - 更多关于并发 Maven 下载期间错误的修复
使用tools.deps.alpha 0.14.1178
如果未指定 Clojure 版本,则默认为 Clojure 1.11.0
TDEPS-153 修复了 Maven 工件下载中的并发问题
修复了 git url 丢失或未推断时的错误消息
即使使用 -Scp,也将 :exec-fn 和 :exec-args 传递给 -X/-T
TDEPS-222 将 pom 中的 Clojure 依赖项设为编译依赖项,而不是 provided
TDEPS-203 在 -X:deps prep
中 - 现在接受基准设置,包括别名
TDEPS-197 -X:deps git-resolve-tags
- 现在解析为 :git/tag 和 :git/sha
-X:deps tree
- 现在接受基准设置
-X:deps mvn-pom
- 现在接受基准设置
-X:deps list
- 将许可证缩写列表放在资源中并在需要时加载
使用tools.deps.alpha 0.12.1158
TDEPS-216 - 内置 :deps 别名应从类路径中移除项目路径
改进 git sha 在 git 存储库中未找到时的错误
改进 prep 错误,如果传递依赖项的 prep 函数无法解析
将 AWS 依赖项更新到最新版本
使用tools.deps.alpha 0.12.1135
更新一些 Maven 传递依赖项以解决一些 CVE
更新到 tools.tools v0.2.5
添加检查,在调用多个 exec 函数时报错
使用 tools.deps.alpha 0.12.1120
TDEPS-207 修复版本范围解析中的死锁
TDEPS-215 修复并行加载 s3 传输器期间的竞争条件
如果 deps 项目没有 deps.edn 清单,则不要跟踪本地 deps.edn 清单以进行缓存
将 maven-core 更新到 3.8.4,aws 库、tools.build、tools.tools 更新到最新版本
使用 tools.deps.alpha 0.12.1109
添加 clj -X:deps list
用于列出依赖项的完整传递集及其许可证信息 - 请参阅 文档
改进了对使用 -T
或 -X:deps find-versions
的未知工具的错误处理
使用 tools.deps.alpha 0.12.1084
TDEPS-212 涵盖更广泛的有效 git 依赖项 URL,包括 git 文件 URL
使用 tools.deps.alpha 0.12.1071
TDEPS-83 当本地依赖项清单更改时使类路径缓存失效
添加新的 clj -X:deps list
程序以列出类路径上的完整库集,请参阅 API 文档 以获取更多信息
将依赖项提升到更新的版本 - aws-api、jetty-client 等
清理 -X/-T 的异常处理
使用 tools.deps.alpha 0.12.1067
从 brew 公式中删除 bottle :unneeded
(不再需要)
TDEPS-209 仅包含 Maven 工件类路径中的 jar 文件
更新到 tools.tools v0.2.1(clj -Ttools list
的少量改进)
使用 tools.deps.alpha 0.12.1058
修复本地 pom 模型构建的嵌套会话缓存计算
使用 tools.deps.alpha 0.12.1048
更新到最新的 AWS API 库
将 Maven 解析器库降级以更好地匹配 Maven 核心库
使用 tools.deps.alpha 0.12.1041
细化缺少命名空间与命名空间中缺少函数的 exec 异常
用 tools.build 替换基于 Maven 的构建过程
编译 tools.deps 中用于构建类路径的入口点以提高性能
使用 tools.deps.alpha 0.12.1036
TDEPS-199 在 S3 传输器中使用默认的 http-client
缓存存储库的 S3 传输器
修复会话缓存以跨线程/绑定堆栈正常工作,以提高性能
将特定 Maven 版本范围请求替换为非范围请求,以减少存储库元数据查找
加载并缓存 Maven 设置一次以提高性能
缓存版本范围解析结果以提高性能
使用 tools.deps.alpha 0.12.1019
deps.edn
如果 git 库名称遵循存储库约定名称,则现在可以推断 :git/url
(也可以显式指定 :git/url
,并且优先)
现在可以指定 :git/tag
和前缀 :git/sha
,而不是完整的 sha。两者都必须指向相同的提交。
:sha
已重命名为 :git/sha
,但出于向后兼容性,仍支持原始名称
:deps/prep-lib
- 一个新的顶级键可用于说明在将源库添加到类路径之前应如何准备它。此键的值是一个包含 :alias
、:fn
和 :ensures
的映射。有关更多信息,请参阅 准备文档。
:tools/usage
- 一个新的顶级键可用于为工具提供 :ns-default
和 :ns-aliases
上下文
工具 - 可以使用本地名称安装的基于 git 的程序。工具可以在 deps.edn 中提供自己的使用上下文。
新的 -T
选项类似于 -X
(执行函数),但不使用项目类路径,而是使用工具类路径(并默认添加 :paths ["."]
)。否则,-T:aliases
与 -X
相同。-Ttoolname
按名称解析命名工具并使用该工具库。
TDEPS-198 - 如果已使用 future/agent,则 -X 和 -T 不会等待退出
TDEPS-182 - 改进弃用消息以使其更准确
TDEPS-183 - 修复 -Sdescribe 输出以在 Windows 上为有效的 EDN
TDEPS-179 - 修复 :classpath-overrides
删除路径时的错误类路径
延迟计算本地存储库路径(不要在加载时计算)
使用 tools.deps.alpha 0.12.1003
新的 -X:deps 程序
find-versions
- 用于查找 Maven 或 git 库或工具的版本
help/dir
- 用于列出工具命名空间中的可用函数
help/doc
- 用于列出工具命名空间或函数的文档
在 源库和构建 中了解更多信息。
添加对 -X 调用中 尾随 kvs 映射 的支持(类似于 Clojure 1.11 将尾随映射传递给可变参数调用)
将所有 Maven 依赖项更新到最新版本(maven-resolver 1.7.0、maven core 1.8.3)以解决这些 安全问题
CVE-2020-13956 - 提升 Maven 使用的 Apache HttpClient 的依赖项版本
CVE-2021-26291 - 关于 Maven 存储库的潜在安全问题
由于可能存在中间人 (MITM) 攻击,因此现在默认情况下阻止了 http 存储库访问。tools.deps/Clojure CLI 在默认存储库列表(central 和 clojars)中始终使用 https 存储库,因此这主要影响 deps.edn 中定义的任何显式 http 存储库
关注传递 pom 依赖项(或其超级 pom)“劫持”存储库 URL 以从恶意存储库下载工件的问题。Maven 在此处没有进行任何更改,但确实阐明了 此页面 上如何解析存储库。从 deps 的角度来看,我们只使用顶级 deps.edn 中声明的存储库(如果传递依赖项需要自定义存储库,则也需要在顶级添加它)。对于 tools.deps 使用 pom 依赖项,我们提供了顶级 deps.edn 文件的存储库(应始终将 Maven Central 和 Clojars 放在首位),然后将其余部分委托给 Maven。
使用 tools.deps.alpha 0.11.922
TDEPS-177 - 修复 Maven 镜像以按 ID 而不是名称查找
删除获取 git 依赖项时的标志,以便旧版本的 git 可以工作
调整一些警告消息
清理脚本以简化变量替换
使用 tools.deps.alpha 0.11.918
git 依赖项:从使用 jgit 切换到向 git 发出 shell 命令(必须是 git >= 2.5)
用于控制的新环境变量
GITLIBS_COMMAND
- 向 git 发出 shell 命令时调用的命令,默认值为 git
GITLIBS_DEBUG
- 设置为 true
以将 git 命令和输出打印到 stderr,默认值为 false
使 git 仅在无法将 sha 解析为提高性能时才进行提取
将 tools.cli 和 aws api 的依赖项版本提升到最新版本
使用 tools.deps.alpha 0.11.905
修复 clj -X:deps git-resolve-tags
以更新 sha 以匹配标签
使用 pom.xml 的 git 或本地依赖项的性能改进
使用 tools.deps.alpha 0.9.884
添加 -version 和 --version 选项
TDEPS-56 - 修复 main-opts 和 jvm-opts 在空格上的分词
TDEPS-125 - 如果已设置,则使用 JAVA_CMD(感谢 Gregor Middell!)
如果 :paths
或 :extra-paths
指向项目根目录之外的目录,则添加警告(将来将变为错误)
使用 tools.deps.alpha 0.9.871
改进无法确定 git 依赖项版本关系时的错误
切换到 1.10.2 作为默认的 Clojure 版本
使用 tools.deps.alpha 0.9.863
设置 -X ex-info 错误的退出代码
同步帮助中的别名 cli 语法
使用 tools.deps.alpha 0.9.857
clj -Stree
/ clj -X:deps tree
的新的、信息更丰富的树格式
添加了 选项 以与 clj -X:deps tree
一起使用
使用 tools.deps.alpha 0.9.857
修复在具有 pom 文件的本地依赖项中使用 jdk 配置文件激活
修复 -X 的错误处理以避免双重抛出
添加对未使用别名使用 -A 的错误处理
使用 tools.deps.alpha 0.9.840
修复 clj -X:deps tree 将 tools.deps.alpha 添加到树中
修复 clj -X:deps mvn-pom 将 tools.deps.alpha 添加到 pom 依赖项中
修复 clj -X:deps git-resolve-tags 不工作
TDEPS-169 - 修复 clj -X:deps mvn-install 在 jar 上也安装嵌入式 pom
修复 clj -Spom 不尊重来自 -A 的依赖项修改(回归)
使用 tools.deps.alpha 0.9.833
使 edn 读取能够容忍未知的标记文字
更新到 maven-resolver 和 aws-api 的最新依赖项
使用 tools.deps.alpha 0.9.821 版本
修复了在依赖扩展中发现依赖的新版本时处理传递依赖的问题
TDEPS-168 - 改进了 -X 错误消息处理
使用 tools.deps.alpha 0.9.816 版本
添加了 执行模式 (-X)
添加了 准备模式 (-P)
扩展了 主执行 (-M),使其支持所有 argmap 参数
为 命名空间解析 添加了新的 argmap 属性
:ns-aliases 和 :ns-default
添加了新的 clojure.tools.cli.api,可通过 -X:deps 别名访问
clj -X:deps git-resolve-tags
clj -X:deps mvn-install
clj -X:deps mvn-pom
clj -X:deps tree
弃用 -R、-C(请改用 -X、-M 或 -A)
弃用 deps.edn 中未限定的库名称(请使用完全限定的库名称)
弃用别名工具参数 :deps 和 :paths(请改用 :replace-deps 和 :replace-paths)
移除 -O(请改用 -X、-M 或 -A)
移除 -Sresolve-tags(请改用 -X:deps git-resolve-tags)
TDEPS-152 - 修复了使用 srcDirectory 生成 -Spom 的问题
TDEPS-155 - 增强了对错误坐标的错误处理
TDEPS-167 - 处理 pom 依赖项中的绝对资源路径
使用 tools.deps.alpha 0.9.810 版本
重新设计了当同一库/版本的排除集不同时的排除处理
使用 tools.deps.alpha 0.8.709 版本
(Windows)将 -Spath 写入输出,而不是主机
TDEPS-152 - 修复了 pom 生成中 srcDirectory 的错误添加
TDEPS-155 - 添加了对缺少 :mvn/version 的错误检查
使用 tools.deps.alpha 0.8.695 版本
TDEPS-150 - 修复了支持 -Scp 标志的回归(避免解析依赖项)
TDEPS-148 - 修复了对没有 deps.edn 的 git/本地依赖项的错误路径解析
使用 tools.deps.alpha 0.8.677 版本