1

是否有一个 clojure 库,提供查询主要 clojure 存储库(如 clojars 和 maven Central)的功能?我在想这样的事情:

(query-repos "reage")
=> {reagent ("0.6.0-SNAPSHOT" "0.6.0-rc" "0.6.0-alpha2" ...)
    reagent-forms ("0.5.25" ...)}

其中clj-ancient有 function version-string!,但它似乎只有在给出正确的工件名称时才有效。(喜欢'reagent

4

1 回答 1

1

看起来 clojars 有一个 API。以下应该足以开始。只需要 clj-http。

(defn get-release
  [lib]
  (let [url (str "https://clojars.org/api/artifacts/" lib)
        resp (:body (clj-http.client/get url {:accept :edn}))
        info (clojure.edn/read-string resp)]
    (println "Name: " (:jar_name info) "\nLatest release: " (:latest_release info))))


user=> (get-release "reagent")
Name:  reagent 
Latest release:  0.6.0-rc

我现在意识到您可能只是在寻找一种进行部分匹配的方法,因为您可能不知道完整的 repo 名称,所以也许这不能回答您的问题,但它可能会帮助其他人,所以我会留下它。上面的链接包含有关纯文本形式的完整列表的信息,可以轻松解析,您可以通过这种方式轻松找到部分匹配项。

于 2016-08-19T14:07:06.357 回答