從 GitHub 直接下載 Clojure 函式庫

栏目: 编程语言 · Clojure · 发布时间: 7年前

内容简介:從 GitHub 直接下載 Clojure 函式庫

Clojure 的用戶多半都是透過 Clojars 去下載需要用的函式庫,但有些時候你需要的函式庫可能作者還沒將該版本放到 Clojars 上,這種時候該怎麼辦呢?

你可以選擇:

  1. 透過 lein install 安裝該函式庫到本地端
  2. 使用本文的方法,透過 Jitpack 去下載你上傳到 GitHub 的修正版本

(註:本文修改自 Loading Clojure Libraries Directly From Github 一文。)

關於 Jitpack

傳統 Java 開發都需要將你的函式庫發布到 Maven 或是其他類似的 repoitory 去,是否想要像 Go 語言 那樣直接從 GitHub 抓取需要的套件呢?透過 JitPack 就可以做到這件事。

JitPack 會幫你把指定目標的 GitHub 專案的特定 TAG 製作成 JAR 放到他們自己的套件庫,這樣你就可以針對特定 TAG 去直接下載 GitHub 的套件,而不需要等待作者發佈到 Clojars 去。

如果原作者沒有加入你需要的 TAG 那要怎辦呢?Fork 就好啦 ~

如何使用

這裡以我自己的 ipify.clj 函式庫為例,假設我們要抓取的是 tag v0.1.0 的版本的話,則可以在你的 project.clj 加入這樣

(defproject aa "0.1.0-SNAPSHOT"
  ;; skip ....
  :dependencies [[org.clojure/clojure "1.8.0"]
                 ;; add following
                 [com.github.coldnew/ipify.clj "v0.1.0"]]
  :repositories [["jitpack" "https://jitpack.io"]])

注意到這邊的 dependencies 格式是 [com.github.your-github-name/your-project-name "git-tag"]

接下來就可以透過 lein deps 去抓取這個函式庫

coldnew@Fevia ~/test $ lein deps
Could not transfer artifact com.github.coldnew:ipify.clj:pom:v0.1.0 from/to jitpack (https://jitpack.io): Read timed out
This could be due to a typo in :dependencies or network issues.
If you are behind a proxy, try setting the 'http_proxy' environment variable.

第一次執行的時候可能會失敗,因為 Jitpack 會需要抓取你的 repo 並將其編譯好放置到套件庫去,不過等會兒在重新測試就可以成功囉

coldnew@Fevia ~/test $ lein deps
Retrieving com/github/coldnew/ipify.clj/v0.1.0/ipify.clj-v0.1.0.pom from jitpack
Retrieving com/github/coldnew/ipify.clj/v0.1.0/ipify.clj-v0.1.0.jar from jitpack

後記

其實還有一個 lein-git-deps 這個 Leinigen 套件可以直接透過 git 把程式碼拉到本地端來解決你的專案依賴,不過這套件已經有段時間沒維護了。

大部分我自己使用的情況,都是透過 lein install 安裝到本地端來滿足依賴, Jitpack 這個套件庫可以自動幫你處理好開源的套件倒是蠻不錯的。

如果是 閉源 的函式庫,則可以考慮付費給 Jitpack 或是自己在自己的私有雲架設 Maven 倉庫。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

逆流而上

逆流而上

阿里巴巴集团成长集编委会 / 电子工业出版社 / 2017-11 / 59.00

本书是阿里巴巴集团荣耀背后的技术血泪史。全书通过分享业务运行过程中各个领域发生的典型“踩坑”案例,帮助大家快速提升自我及团队协作,学习到宝贵的处理经验及实践方案,为互联网生产系统的稳定共同努力。从基础架构、中间件、数据库、云计算、大数据等技术领域中不断积累经验,颠覆技术瓶颈,不断创新以适应不断增长的需求。 本书主要面向互联网技术从业人员和在校师生,使读者能够通过此书基本了解阿里在各技术领域的能力,......一起来看看 《逆流而上》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具