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

欢迎!请参见关于页面以了解更多有关如何使用这个网站的信息。

0
规范

我在尝试使用spec-alpha2时遇到了几个(微小的)障碍。它们都源于GitHub页面的文档。引用的命名空间是针对spec的旧版本,jar文件不在Leiningen默认仓库之一。

我建议如下更新:

将“要加载的命名空间:”部分改为引用clojure.spec-alpha2而不是clojure.alpha.spec

在包含Maven坐标的部分中提及jar文件位于Sonatype快照仓库中(https://oss.sonatype.org/content/repositories/snapshots/

1 条回答

0

命名空间是正确的(旧版本是clojure.spec.alpha,当前的spec-alpha2版本是clojure.alpha.spec,预计最终会是clojure.spec)。

我们不相信这个库现在已经准备好使用了(它不完整且存在多个已知的错误)。Sonatype快照仓库在发行说明部分有提及(开发快照版本链接)。我们目前没有进行快照发布。可能有一些东西来自测试构建作业,但它并不反映当前状态或任何我可以推荐的版本。也许我现在应该先删除所有这些。

如README所述,如果您想在开发期间尝试它,请将其用作git依赖项以获取最新状态。

我认为删除对 Maven 构建的引用可能是个好主意,以防任何人走跟我一样的弯路,如果可能的话甚至从仓库中提取。

经过一番侦探工作,我让它开始工作了(我猜是从 spec-alpha2 的早期版本开始的)

(defproject scratch "0.1.0-SNAPSHOT")
  :dependencies [[org.clojure/clojure "1.10.1"]
              [org.clojure/spec-alpha2 "0.2.177-SNAPSHOT"]
                 [org.clojure/test.check "0.9.0"]]
  :repositories [["sonatype" {:url "https://oss.sonatype.org/content/repositories/snapshots/"}]])

(ns scratch.core)
  (:require [clojure.spec-alpha2 :as sa2]
            [clojure.spec-alpha2.gen :as gen]))

(sa2/def ::x (s/and-
            (s/cat :i1 int? :i2 int?)
            #(apply distinct? %)))

等等
顺便说一下,无论那个快照是什么,它已经过时了,并且不反映仓库的当前状态。
...