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

欢迎!请参阅 关于 页面以获取有关此工作方式的一些更多信息。

+1
Clojure
已关闭

Java 有一种方法可以通过命令行快速找到版本
java -version

对于 `cli` 和 `clojure` 命令有类似的东西吗?如果没有,如果这些命令有类似的功能,最好打印出 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 -hclj -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)将返回一个包含关于程序运行环境的有趣信息的hash map。
我想我可以通过说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的别名(以及现在是Clojure 1.11的“master”)。

这有帮助吗?还是更加混乱了?
by
Dave Roberts写道:“我指的是特别报告Clojure版本(例如,1.10.2.774),而不是特别报告`clojure`命令行工具,尽管我觉得这两者(至少半)是关联的。

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