简介

erlang提供了rebar3来管理依赖和编译项目,结合git和hex,项目的依赖管理会非常简单。项目本体也会非常精简。但是也带来了问题就是项目本身必须依赖外网才可以构建,因为deps库一般都是从git或者hex上进行的下载。如果是内网环境下,就无法进行构建,只能提前将依赖在外网环境下下载完整再本地进行构建。
同样如果网络环境比较差,国内连接hex的本站速度也比较慢,意味着每次构建都需要很久,因此如果能将依赖从本地进行拉取就会快很多。

实现

rebar3提供了插件功能,在有了插件功能后,就可以在不修改rebar3本体逻辑的情况下,对rebar3进行扩展,因此可以使用插件实现上面所述的将所有需要拉取的地址都替换成自己的本地git地址

本地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
或者直接配置到系统中都可以

rebar3使用本地依赖相关推荐

  1. idea工程本地依赖_IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题(已解决)...

    IDEA 2020.1 版自动导入MAVEN依赖的方法(新版MAVEN无法自动导入/更新POM依赖.MAVEN设置自动更新.自动更新快捷键) 新版的IDEA为了防止 pom 更新时,MAVEN 自动导 ...

  2. idea maven plugins报红_Maven引入本地依赖

    通常,我们使用maven都是通过pom.xml来引入项目所需的依赖,但有时一些依赖在公共资源库上找不到,我们就可以通过本地引入的方式来引入,如IDEA,在Project Structure - Lib ...

  3. Maven添加本地依赖

    在写本文的时候先来说明一下maven依赖的各种范围的意思 compile(编译范围)        compile 是默认的范围:如果没有提供一个范围,那该依赖的范围就是编译范围.编译范围依赖在所有的 ...

  4. 以下系统组件依赖此服务器,Maven中配置本地依赖组件包

    Maven添加本地的依赖包,可以通过以下两种方式进行添加. 第一种:指定本地依赖包的路径 具体配置录下: Xml代码如下: /home/project org.apache test 1.0 syst ...

  5. maven打包--同时将仓库依赖和本地依赖的jar包也打进去

    目录 maven添加依赖 maven添加本地依赖 项目打包 maven打包 将依赖包一同打进去 将本地依赖包也一同打包 可能出现的问题 依赖包不与项目代码一同编译 maven添加依赖 首先,如何在ma ...

  6. maven项目打包 导入本地依赖并打包

    一.打包方式 IDEA+Maven打JAR包的两种方法_清平乐的技术专栏的博客-CSDN博客_idea maven打jar包 1. idea build打包 (1)依次选择 file->proj ...

  7. maven 打包指定依赖包_maven打包加入依赖包以及加入本地依赖包的方法

    Maven引入本地Jar包并打包进War包中 1.概述 在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来. 2. 拷贝至项目根目录 项目 ...

  8. maven打包时加入依赖包及加入本地依赖包

    maven打包的时候默认是不加入依赖的jar包的,所以想打出一个独立的可运行jar包的话直接mvn clean install package是不行的.需要略改动下pom文件,加入如下plugin ? ...

  9. python pip下载本地依赖包,并在离线环境中安装,并解决报错ERROR: Could not find a version that satisfies the requirement报错

    文章目录 步骤1:导出依赖 步骤2:离线下载依赖包 步骤3:进入新环境使用python安装依赖 整体思路如下: 首先根据项目需要导出依赖包,由于本地的python环境中其实安装了很多乱七八糟的包,这些 ...

最新文章

  1. Linux:检查当前运行级别的五种方法
  2. java简易租车系统界面_租车系统的Java简单实现
  3. C#读写文件:编码和转换(string和byte[]转换为例)
  4. 计算机安全模式无法进入安全模式,如何解决无法在Windows 10中进入安全模式的问题...
  5. 软工Chapter Seven
  6. 一个简易的渲染循环结构
  7. mysql+多列外键_MySQL中的多列外键?
  8. Linux系统下,MySQL以及禅道的安装/卸载
  9. Jupyter Notebook代码提示及补齐功能
  10. 插件占坑,四大组件动态注册前奏(一) 系统Activity的启动流程
  11. wordpress让百度分享支持https
  12. 班级量化考核系统php代码,学生信息量化考核管理系统
  13. java参考文献大全
  14. python摩尔庄园自动弹琴
  15. 谷歌地图的API应用
  16. 【华为OD机试真题 JAVA】数字涂色
  17. [PED08]Self-paced Clustering Ensemble自步聚类集成论文笔记
  18. HanLP中文分词、人名识别、地名识别
  19. 博主已出版的全部译作汇总
  20. 有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1。这4个塔的高度为10m,塔以外无建筑物。今输入任一点的坐标,求该点的建筑高度(塔外的高度为0)

热门文章

  1. 在shell脚本中使用sed命令更改文件中两个相似参数的其中一个
  2. 《我编程我快乐》读书笔记
  3. python标注cad桩位_cad自动进行桩位编号
  4. IntelliJ IDEA开发工具的完成
  5. android游戏引擎汇总
  6. android editext下拉框,android实现下拉框和输入框结合
  7. 用vue3实现根据出生年月计算年龄
  8. 网络骗局环环相扣 钓鱼攻击出现新方式
  9. 基于 FPGA Vivado 信号发生器设计(附源工程)
  10. PCB和软件设计经验(1)