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

欢迎!有关如何工作的更多信息,请参阅关于页面。

+1
Clojure
已关闭

Java 在命令行中有一种快速查找版本的方法
java -version

对于 cliclojure 命令,是否有类似的功能?如果没有,如果这些命令包含类似功能,例如同时打印出 Clojure 版本和 Java 版本,这将很有帮助,用户可以快速确定已安装和正在运行的内容。

以以下备注关闭: 在 Clojure CLI 1.10.2.790 中发布

2 个答案

+1

选中
 
最佳答案

Clojure CLI 1.10.2.790 现在具有 -version 和 --version 选项(与 Java 的意义相同)。

本报告Clojure CLI的版本。它不会报告Java版本 - 请使用java来获取。

太好了!谢谢,Alex。
0

这里的“Clojure”是重载的(而且我甚至不确定你在问哪一个) - 既有Clojure命令行工具,也有你当前使用的Clojure语言jar版本。它们是独立的,任何工具版本都可以与任何版本的Clojure一起使用(即Clojure 1.10.2.774工具可以使用Clojure 1.0,Clojure 1.9.x工具可以使用Clojure 1.10.2)。

您可以使用clj -h(第一行)或clj -Sdescribe查看工具的版本。

您可以使用clj -M -e "*clojure-version*"查看您当前使用的Clojure版本。

由于对确切操作感到困惑,我尚未决定该对此做什么。:)

我猜想我可能通过说Clojure工具可能会运行两个进程来进一步引起混淆 - 第一个是计算类路径,将使用与工具前缀版本匹配的Clojure版本,第二个是您正在运行的任何程序,即您所说的任何程序。
啊,明白了。我特地想报告Clojure版本(例如,1.10.2.774),并不是特别指`clojure`命令行工具,尽管我认为这两个是(至少是部分)相关的。我想问的是一种尽可能简单明了地回答“我在运行什么?”的东西。是的,我意识到我可以执行`cli -M -e "*clojure-version*"`,但这太长了。看起来,命令行工具应该有一个`--version`选项。
你还可以通过系统属性获取JVM版本。

$ clojure -M -e '(println "Java" (System/getProperty "java.version") "Clojure" (clojure-version))'
Java 15 Clojure 1.10.2

评估(System/getProperties)将返回一个包含关于程序运行环境有趣信息的哈希表。
我想我可以再抛出更多的混淆,比如说Clojure工具可能会运行两个进程——第一个计算出类路径,将要使用与工具前缀版本匹配的Clojure版本,第二个是你要运行的任何程序,那就是你要说的使用版本。

好了,这是个好点子。
@sean,是的,我知道这些都在那里,我并不是说没有版本信息可用。所有的信息都在某个地方。我只是在寻找一些可以方便地输出,而不是冗长咒语的东西。
"我具体指的是要报告Clojure版本(例如,1.10.2.774),而不是特别指`clojure`命令行工具" -- 1.10.2.774是该命令行工具的版本,而非Clojure。

在clj -h中(或clojure -h),第一条就是显示命令行工具版本。

但是,Clojure版本设置在你的项目的deps.edn文件中,或在你的用户deps.edn文件中,如果没有设置,则默认为系统deps.edn文件。

clj/clojure命令可以运行任何Clojure(语言)版本 -- 我在我的用户deps.edn文件中有从Clojure 1.0到Clojure 1.10.2的所有别名,还包括"master"(现在为Clojure 1.11)。

这有帮助吗?还是更加混淆了?
by
Dave Roberts写道:"我具体指的是要报告Clojure版本(例如,1.10.2.774),虽然我认为这两个至少是半相关的,但并不是特指`clojure`命令行工具"。

注意,1.10.2.774确实是`clojure`命令行工具的版本号。Clojure语言本身没有这样的版本号。在JVM上的Clojure语言有类似1.9.0、1.10.0、1.10.2等版本号,但没有1.10.2.774。
...