rebar3使用本地依賴
簡介
erlang提供了rebar3來管理依賴和編譯專案,結合git和hex,專案的依賴管理會非常簡單。專案本體也會非常精簡。但是也帶來了問題就是專案本身必須依賴外網才可以構建,因為deps庫一般都是從git或者hex上進行的下載。如果是內網環境下,就無法進行構建,只能提前將依賴在外網環境下下載完整再本地進行構建。
同樣如果網路環境比較差,國內連線hex的本站速度也比較慢,意味著每次構建都需要很久,因此如果能將依賴從本地進行拉取就會快很多。
實現
rebar3提供了外掛功能,在有了外掛功能後,就可以在不修改rebar3本體邏輯的情況下,對rebar3進行擴充套件,因此可以使用外掛實現上面所述的將所有需要拉取的地址都替換成自己的本地git地址
只需要在專案頂層的rebar.config中加入
{plugins, [
{rebar3_local_deps, ".*",
{git, "git://github.com/yidayoung/rebar3_local_deps.git", {branch, "master"}}}
]}.
{local_deps_url, "http://127.0.0.1:9001/r/"}.
local_deps_url欄位是本地的git伺服器字首,例如如果我們要下載ct庫,無論rebar.config中指定的ct庫的下載方式是啥,都會替換成http://127.0.0.1:9001/r/ct.git 下載。
包括專案本體的依賴和依賴的依賴,專案中所有的拉取動作的地址都會被替換。
外掛的下載地址在本地git伺服器搭建後,也可以直接替換成自己的git伺服器地址,這樣就完全脫離外網
git服務搭建
本地git服務搭建有很多方法,gitbit, gitlab都是比較成熟的方案了,安裝也可很簡單。
搭建完成後需要將 遠端的git本體進行克隆而不是程式碼。可以直接將檔案克隆到git伺服器的專案資料夾,重新整理快取後,就可以直接訪問,不需要在git伺服器側進行專案建立和程式碼上傳
git clone --bare xxxxx.git
關於hex
rebar3引入了hex管理deps,平時在deps中看到的沒有地址標註的,只有專案名,或者專案名帶版本的,都是hex庫,hex是直接從hex網址進行拉取的,國內拉取一般都會很慢,但是如果只是為了解決hex庫慢的問題,可以簡單的替換hex映象地址,官方提供了兩個方案
- 在rebar.config中新增配置項
{rebar_packages_cdn, "https://hexpm.upyun.com"}
- 設定環境變數
%% 命令執行前設定環境變數
HEX_CDN=https://repo.hex.pm rebar3 update
或者直接配置到系統中都可以
相關文章
- 使用IDEA模組之間依賴找不到依賴類Idea
- Composer騷操作,使用本地git目錄作為依賴解決衝突Git
- 依賴管理和依賴範圍
- WinForm依賴注入簡單使用ORM依賴注入
- Laravel 使用依賴注入呼叫方法Laravel依賴注入
- 使用Mockito修改Bean的依賴MockitoBean
- 依賴
- 文盤Rust -- 本地庫引發的依賴衝突Rust
- 半導體“依賴症”:世界依賴中國、中國依賴世界
- 在iOS專案中依賴Flutter Module-③本地podspec中轉依賴遠端Flutter編譯產物iOSFlutter編譯
- Maven依賴管理:控制依賴的傳遞Maven
- ASP.NETCore使用AutoFac依賴注入ASP.NETNetCore依賴注入
- 使用 Swift Package Manager 整合依賴庫SwiftPackage
- 使用google wire解決依賴注入Go依賴注入
- linux yum下載依賴包到本地,不進行安裝Linux
- maven由於依賴更新但本地重新拉取無反應Maven
- Idea Java Maven建立專案,新增依賴,引用本地jar,打包jarIdeaJavaMavenJAR
- vscode使用npm安裝依賴報錯VSCodeNPM
- IDEA中使用maven打包且包含依賴IdeaMaven
- [譯] 在 iOS 上使用 Carthage 建立依賴iOS
- 探索 JavaScript 中的依賴管理及迴圈依賴JavaScript
- 依賴引入 | Android依賴引入史上最全攻略Android
- Maven依賴管理Maven
- - Maven 依賴管理Maven
- Maven 依賴管理Maven
- 【PY】PyQT 依賴QT
- angular依賴注入Angular依賴注入
- XUnit 依賴注入依賴注入
- Maven什麼時候需要排除依賴,如何排除依賴Maven
- 依賴注入?依賴注入是如何實現解耦的?依賴注入解耦
- Go中使用Google Wire實現依賴注入Go依賴注入
- openGauss libpq使用依賴的標頭檔案
- C# 依賴注入IServiceCollection的AddSingleton方法使用C#依賴注入
- 分解uber依賴注入庫dig-使用篇依賴注入
- .net core 控制檯程式使用依賴注入(Autofac)依賴注入
- 淺析依賴倒轉、控制反轉、IoC 容器、依賴注入。依賴注入
- 再探迴圈依賴 → Spring 是如何判定原型迴圈依賴和構造方法迴圈依賴的?Spring原型構造方法
- Maven工程依賴配置Maven