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

欢迎!请查看关于页面以获取更多关于这些信息的工作方式。

0
spec

我在尝试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? %)))

等等等等

补充一点, whatever 那个 snapshot 是旧的,并且并不能反映出仓库的当前状态。
...