Clojure
工具版本

工具版本

Clojure 命令行工具可用于启动 Clojure repl、使用 Clojure 和 Java 库以及启动 Clojure 程序。

安装和文档

版本

此处描述了最近的官方版本。预发布版本和旧版本可以在仓库变更日志中找到。

1.11.2.1446 (2024年3月8日)

  • 将默认 Clojure 版本更新为 1.11.2

  • 创建基准的 Clojure -X:deps 程序现在接受 :dir 选项以指定要使用的目录上下文

  • 更新了 tools.deps 和 tools.deps.cli 至最新版本

1.11.1.1435 (2024年1月3日)

  • TDEPS-238 - deps.edn 文件现在根据规范进行验证

  • TDEPS-239 - 将空 deps.edn 文件视为 {}

  • 更新了多个依赖项

1.11.1.1429 (2023年12月4日)

  • 回滚 1.11.1.1420 中的 Maven 解析器依赖项更新

1.11.1.1420 (2023年12月4日)

  • TDEPS-119 无法在写保护的项目目录中启动 CLI

  • TDEPS-256 create-basis - 当指定不同的项目目录时,应使用它来解析相对的本地依赖项

  • 将所有依赖项更新到最新版本

1.11.1.1413 (2023年8月26日)

  • 无更改

1.11.1.1409 (2023年8月25日)

  • 无更改

1.11.1.1405 (2023年8月22日)

  • GitHub 上的 CLI 版本现在具有二进制文件的 .sha256 文件

1.11.1.1386 (2023年8月14日)

1.11.1.1347 (2023年5月31日)

  • 使用 -X 或 -T 接受 - 作为尾随参数以从 stdin 读取其余参数

  • 在 Windows 安装程序中,隐藏下载进度条

  • TDEPS-247 - 修复了具有大量扇出的依赖项上的 StackOverflow 错误

  • TDEPS-249 - 在依赖项扩展期间正确推送/弹出线程绑定

  • TDEPS-227 - 在 resolve-deps 结束时关闭依赖项扩展线程

  • TDEPS-248 - 使 tags 在脱机时返回已知标签

  • 使用tools.deps 0.18.1354

1.11.1.1273 (2023年4月3日)

  • 修复了 -Spom 的回归错误

  • 更新了帮助信息,包括 -X:deps mvn-pom 而不是 -Spom(最终将被移除)

  • 使用tools.deps 0.18.1335

1.11.1.1267 (2023年3月31日)

  • TDEPS-245 - 修复了 -X:deps find-versions 使用非规范化库名称时的错误

  • 使用tools.deps 0.18.1331

1.11.1.1262 (2023年3月27日)

  • 使本地依赖项版本可根据路径进行比较

  • 使用tools.deps 0.18.1317

1.11.1.1257 (2023年3月15日)

1.11.1.1252 (2023年3月6日)

  • 切换到通过基准 :argmap 传递执行参数

  • 用于 -X/-T 的函数执行协议支持

  • 使用tools.deps 0.17.1297

1.11.1.1237 (2023年2月27日)

  • 添加了一个环境变量,可以将其设置为临时允许对 http 存储库的支持:CLOJURE_CLI_ALLOW_HTTP_REPO

  • 删除对 -R 和 -C 的已弃用支持

  • 清理了 repl 支持 init-opts 方面的帮助文本

  • 使用tools.deps 0.16.1285

1.11.1.1224 (2023年2月12日)

  • 修复了具有大量标签的存储库的 git 标签验证问题

  • TDEPS-235 - 禁止 http :mvn/repos

  • TDEPS-236 - 将 rlwrap -m 添加到 clj 以进行多行编辑

1.11.1.1208 (2022年12月11日)

  • TDEPS-234 - 默认情况下始终包含 -XX:-OmitStackTraceInFastThrow

  • 使用tools.deps 0.16.1264

1.11.1.1200 (2022年11月14日)

  • 在 :mvn/repos 映射中添加了设置发布和快照策略的支持

  • TDEPS-101 在 -Spom 和 -X:deps mvn-pom 中输出存储库策略

  • 使用tools.deps.alpha 0.15.1254

1.11.1.1189 (2022年11月2日)

  • TDEPS-233 来自过时 jar 检查更改的 bash 脚本修复

  • 在帮助和手册页中添加了一些缺少的项目

1.11.1.1182 (2022年10月26日)

  • 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

1.11.1.1165 (2022年9月18日)

  • TDEPS-165 使用环境变量 CLJ_JVM_OPTS 将 JVM 属性传递给内部类路径构建过程

  • 添加支持以将常见的 JAVA_OPTS 环境变量作为 JVM 属性包含在用户程序执行中

1.11.1.1155 (2022年8月5日)

  • TDEPS-228 添加对自动推断的 Sourcehut git url 的支持

  • 更新 aws-api、Maven 等依赖项版本

  • 使用tools.deps.alpha 0.14.1222

1.11.1.1149 (2022年6月21日)

  • clj -Ttools install-latest - 优化版本过滤、排序和选择最新版本的方式

  • 更新到 tools.tools v0.2.8

  • 使用tools.deps.alpha 0.14.1212

1.11.1.1139 (2022年6月16日)

  • 添加 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

1.11.1.1129 (2022年6月14日)

  • 修复了使用传递性本地依赖项时 -X:deps prep 的目录上下文

  • 使用tools.deps.alpha 0.14.1194

1.11.1.1124 (2022年6月11日)

1.11.1.1119 (2022年6月9日)

  • TDEPS-213 - 添加 -X:deps aliases 以列出可用的别名

  • TDEPS-226 - 更细致的 s3 下载错误处理

  • 当无法推断 git url 时,提供更好的错误消息

  • 使用tools.deps.alpha 0.14.1185

1.11.1.1113 (2022年4月25日)

1.11.1.1105 (2022年4月5日)

  • 如果未指定 Clojure 版本,则默认为 Clojure 1.11.1

1.11.0.1100 (2022年3月28日)

  • 如果未指定 Clojure 版本,则默认为 Clojure 1.11.0

  • TDEPS-153 修复了 Maven 工件下载中的并发问题

1.10.3.1087 (2022年2月28日)

  • 修复了 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

1.10.3.1075 (2022年2月2日)

  • TDEPS-216 - 内置 :deps 别名应从类路径中移除项目路径

  • 改进 git sha 在 git 存储库中未找到时的错误

  • 改进 prep 错误,如果传递依赖项的 prep 函数无法解析

  • 将 AWS 依赖项更新到最新版本

  • 使用tools.deps.alpha 0.12.1135

1.10.3.1069 (2022年1月26日)

  • 更新一些 Maven 传递依赖项以解决一些 CVE

  • 更新到 tools.tools v0.2.5

  • 添加检查,在调用多个 exec 函数时报错

  • 使用 tools.deps.alpha 0.12.1120

1.10.3.1058 (2022年1月5日)

  • 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

1.10.3.1040 (2021年12月1日)

  • 添加 clj -X:deps list 用于列出依赖项的完整传递集及其许可证信息 - 请参阅 文档

  • 改进了对使用 -T-X:deps find-versions 的未知工具的错误处理

  • 使用 tools.deps.alpha 0.12.1084

1.10.3.1029 (2021年11月8日)

1.10.3.1020 (2021年11月5日)

  • TDEPS-83 当本地依赖项清单更改时使类路径缓存失效

  • 添加新的 clj -X:deps list 程序以列出类路径上的完整库集,请参阅 API 文档 以获取更多信息

  • 将依赖项提升到更新的版本 - aws-api、jetty-client 等

  • 清理 -X/-T 的异常处理

  • 使用 tools.deps.alpha 0.12.1067

1.10.3.998 (2021年10月26日)

  • 从 brew 公式中删除 bottle :unneeded(不再需要)

  • TDEPS-209 仅包含 Maven 工件类路径中的 jar 文件

  • 更新到 tools.tools v0.2.1(clj -Ttools list 的少量改进)

  • 使用 tools.deps.alpha 0.12.1058

1.10.3.986 (2021年9月22日)

  • 修复本地 pom 模型构建的嵌套会话缓存计算

  • 使用 tools.deps.alpha 0.12.1048

1.10.3.981 (2021年9月21日)

  • 更新到最新的 AWS API 库

  • 将 Maven 解析器库降级以更好地匹配 Maven 核心库

  • 使用 tools.deps.alpha 0.12.1041

1.10.3.967 (2021年9月1日)

  • 细化缺少命名空间与命名空间中缺少函数的 exec 异常

  • 用 tools.build 替换基于 Maven 的构建过程

  • 编译 tools.deps 中用于构建类路径的入口点以提高性能

  • 使用 tools.deps.alpha 0.12.1036

1.10.3.943 (2021年8月13日)

  • TDEPS-199 在 S3 传输器中使用默认的 http-client

  • 缓存存储库的 S3 传输器

  • 修复会话缓存以跨线程/绑定堆栈正常工作,以提高性能

  • 将特定 Maven 版本范围请求替换为非范围请求,以减少存储库元数据查找

  • 加载并缓存 Maven 设置一次以提高性能

  • 缓存版本范围解析结果以提高性能

  • 使用 tools.deps.alpha 0.12.1019

1.10.3.933 (2021年7月28日)

  • deps.edn

    • git 依赖项

      • 如果 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 中提供自己的使用上下文。

    • 添加了一个名为 tools 的新的自动安装工具,其中包含 函数 installlistremove。请参阅 参考

    • 使用 clojure -Ttools install <lib> <coord> :as <toolname> 安装工具

    • 使用 clojure -T<toolname> fn 运行工具(也采用 -X 样式参数)

  • Clojure CLI

    • 新的 -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 库或工具的版本

    • prep - 用于 准备 源库

    • help/dir - 用于列出工具命名空间中的可用函数

    • help/doc - 用于列出工具命名空间或函数的文档

源库和构建 中了解更多信息。

1.10.3.855 (2021年5月25日)

  • 在 Windows 上使用 -X 执行应用 :jvm-opts 的修复

1.10.3.849 (2021年5月21日)

  • 添加对 -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

1.10.3.839 (2021年5月12日)

  • 修复 1.10.3.833 中的 Linux 安装程序损坏

1.10.3.833 (2021年5月11日)

  • TDEPS-177 - 修复 Maven 镜像以按 ID 而不是名称查找

  • 删除获取 git 依赖项时的标志,以便旧版本的 git 可以工作

  • 调整一些警告消息

  • 清理脚本以简化变量替换

  • 使用 tools.deps.alpha 0.11.918

1.10.3.822 (2021年4月3日)

  • 修复 git 依赖项中未获取分支上的新提交的问题

1.10.3.814 (2021年3月16日)

  • 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

1.10.2.796 (2021年2月23日)

  • 修复 clj -X:deps git-resolve-tags 以更新 sha 以匹配标签

  • 使用 pom.xml 的 git 或本地依赖项的性能改进

  • 使用 tools.deps.alpha 0.9.884

1.10.2.790 (2021年2月19日)

  • 添加 -version 和 --version 选项

  • TDEPS-56 - 修复 main-opts 和 jvm-opts 在空格上的分词

  • TDEPS-125 - 如果已设置,则使用 JAVA_CMD(感谢 Gregor Middell!)

  • 如果 :paths:extra-paths 指向项目根目录之外的目录,则添加警告(将来将变为错误)

  • 使用 tools.deps.alpha 0.9.871

1.10.2.774 (2021年1月26日)

  • 改进无法确定 git 依赖项版本关系时的错误

  • 切换到 1.10.2 作为默认的 Clojure 版本

  • 使用 tools.deps.alpha 0.9.863

1.10.1.763 (2020年12月10日)

  • 设置 -X ex-info 错误的退出代码

  • 同步帮助中的别名 cli 语法

  • 使用 tools.deps.alpha 0.9.857

1.10.1.754 (2020年12月7日)

  • clj -Stree / clj -X:deps tree 的新的、信息更丰富的树格式

  • 添加了 选项 以与 clj -X:deps tree 一起使用

  • 使用 tools.deps.alpha 0.9.857

1.10.1.739 (2020年11月23日)

  • 修复在具有 pom 文件的本地依赖项中使用 jdk 配置文件激活

  • 修复 -X 的错误处理以避免双重抛出

  • 添加对未使用别名使用 -A 的错误处理

  • 使用 tools.deps.alpha 0.9.840

1.10.1.727 (2020年10月21日)

  • 修复 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

1.10.1.716 (2020年10月10日)

  • 使 edn 读取能够容忍未知的标记文字

  • 更新到 maven-resolver 和 aws-api 的最新依赖项

  • 使用 tools.deps.alpha 0.9.821 版本

1.10.1.708 (2020年10月7日)

  • 修复了在依赖扩展中发现依赖的新版本时处理传递依赖的问题

  • TDEPS-168 - 改进了 -X 错误消息处理

  • 使用 tools.deps.alpha 0.9.816 版本

1.10.1.697 (2020年9月25日)

  • 添加了 执行模式 (-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 版本

1.10.1.561 (2020年7月17日)

  • 重新设计了当同一库/版本的排除集不同时的排除处理

  • 使用 tools.deps.alpha 0.8.709 版本

1.10.1.547 (2020年6月11日)

  • (Windows)将 -Spath 写入输出,而不是主机

  • TDEPS-152 - 修复了 pom 生成中 srcDirectory 的错误添加

  • TDEPS-155 - 添加了对缺少 :mvn/version 的错误检查

  • 使用 tools.deps.alpha 0.8.695 版本

1.10.1.536 (2020年2月28日)

  • 发布自动化工作,没有工具更改

1.10.1.510 (2020年2月14日)

  • TDEPS-150 - 修复了支持 -Scp 标志的回归(避免解析依赖项)

  • TDEPS-148 - 修复了对没有 deps.edn 的 git/本地依赖项的错误路径解析

  • 使用 tools.deps.alpha 0.8.677 版本