免费教你使用 git 仓库搭建 maven 私服 | 码云小课堂

本文由 Polly 发表在开源中国社区

自己编写的jar,想要通过maven方式进行分发必须发布到maven仓库。如果没有自己的私服,我们可以使用折中的办法来实现。

maven客户端从maven仓库拉取构件时,实际上就是通过http协议去拉取对应仓库地址上的,对应目录中的metadata文件,查询需要的版本,就可以找到jar文件,下载到本机仓库。从而完成了依赖构件的拉取。

就是说,我们可以使用任何http服务器,按照一定的目录结构部署构件,从而当做一个私服来使用。

http服务器也没有?那好吧,悄悄告诉你,几乎所有的git服务都支持直接通过http访问指定文件的功能。(web界面中的Raw按钮点击就会跳到这个地址)

本文以国内最流行(红薯看到一定笑的很开心)的git服务——码云 为例,演示如何创建自己的私服。

1. 创建仓库

首先登录码云,创建项目:

名称: mvnrepo
是否公开:公开

其他随意填写,然后点“创建”按钮完成创建。

必须公开,否则maven无法使用它作为仓库。

那么你的项目路径应该是:

https://gitee.com/{你的域名}/mvnrepo

比如我的仓库地址是:

https://gitee.com/pollyduan/mvnrepo.git

2. 拉取仓库到本机

首先明确这个git项目拉取到本机的位置,记住,有用。比如我拉取到 /data/git/ 中。

cd /data/git
git clone https://gitee.com/pollyduan/mvnrepo.git

此时,项目的目录为:/data/git/mvnrepo

3. 配置本地临时仓库

修改本机maven仓库地址,只需要修改 settings.xml 中本机仓库的地址,注意,改配置文件有两个,maven会一次查找,以最后一个为准,所以要修改最后一个。

$M2_HOME/conf/settings.xml
~/.m2/settings.xml

将仓库地址修改为:

<localRepository>/data/git/mvnrepo</localRepository>

4. 安装你要发布的jar到本机仓库

如果你要直接安装一个现有的jar:

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.5 -Dpackaging=jar -Dfile=ojdbc14.jar

如果你要将maven项目打包安装:

mvn install

注意,这时会把项目的依赖以及maven的一些依赖也放到当前的临时仓库里去了。

5. 整理本地临时仓库

如果你的目录很清晰,比如我要发布的包都在 com.pollyduan 中,也可以不用清理,但注意不要提交到git服务器上去。

否则,就需要手动把不要的包都删掉。

这里整明白以后,提交一个commit,并push到远端仓库去。

cd /data/git/mvnrepoecho '# 写点什么吧' >README.md
git add README.md
git add com/pollyduan
git commit -m '初始化仓库'git push

6. 获取私服地址

回到gitee仓库的web站,

如:https://gitee.com/pollyduan/mvnrepo

点击仓库中的 README.md 文件,然后点击 原始数据 按钮,这时候会弹出新的窗口显示文件。

复制浏览器中的地址:

https://gitee.com/pollyduan/mvnrepo/raw/master/README.md

把这个地址中的 /README.md 去掉,就是你的私服地址了:

https://gitee.com/pollyduan/mvnrepo/raw/master

帅帅的。

7. 在maven仓库中使用私服

由于我们的私服里只有我们要发布的jar,其他各种jar都没有,因此不要把这个私服作为全局的镜像,切记切记。

在pom 文件中project 元素的下一层增加如下配置:

<repositories>
  <repository>
    <id>mvnrepo</id>
    <name>mvn repository</name>
    <url>https://gitee.com/pollyduan/mvnrepo/raw/master</url>
  </repository></repositories>

现在你可以愉快地使用私服了。

如果你需要把项目分发其他人,它也可以方便的获取到你的依赖。

彩蛋

码(ke)云(bie)无(dang)敌(zhen)。

好吧,还得啰嗦一句:完了建议把 settings.xml 中的本机仓库地址改回去,要不然以后这个私服项目管理恐怕是个麻烦事。

别真把码云当回收站呀。

原文发布于微信公众号 - 码云Gitee(mayunOSC)

原文发表时间:2018-03-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏维C果糖

IntelliJ IDEA 中的版本控制介绍(上)

在之前的「史上最简单的 IntelliJ IDEA 教程」之中,咱们已经了解了很多关于 IntelliJ IDEA 的使用方法,至少可以独立的运用 Intell...

19810
来自专栏惨绿少年

企业架构规划及服务器优化参数

第1章 企业架构规划 1.1 架构图 ? 1.1.1 用户访问网站组成 类型 作用 实现方式 顾客-用户 访问网站的人员 ...

3230
来自专栏生信技能树

史上最全​Git使用手册

Git使用手册 目录: Git是什么 基本概念 Git的诞生 Git的安装与配置 创建版本库 Git操作略览 远程仓库:git的杀招 分支管理 便签管理 使用g...

3405
来自专栏Java帮帮-微信公众号-技术文章全总结

01.SVN介绍与安装

01.SVN介绍与安装 SVN 简介 ---- Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数...

4949
来自专栏JavaEE

版本管理的倚天剑 --- git前言:一、git简介:二、git的安装:三、git的使用:四、码云的使用:总结:

要想成为武林高手,除了要身怀绝技,还需要神兵利器相配。git绝对称得上是版本管理工具中的倚天剑。正所谓好马配好鞍,相信用上git的你一定能称霸码林,独步天下!

1123
来自专栏程序猿DD

Consul注销实例时候的问题

当我们在Spring Cloud应用中使用Consul来实现服务治理时,由于Consul不会自动将不可用的服务实例注销掉(deregister),这使得在实际使...

3846
来自专栏BY的专栏

CocoaPods 私有仓库的创建(超详细)前言正文结语

4466
来自专栏晨星先生的自留地

脏牛漏洞

6266
来自专栏安全领域

使用JavaScript开发物联网设备也会非常安全

本文将引导你完成一个练习,向你展示如何在 IoTivity 安全框架上使用 Java 对 OCF 设备进行快速原型设计。

49310
来自专栏惨绿少年

Git详解及 github与gitlab使用

1.1 关于版本控制 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯...

4910

扫码关注云+社区

领取腾讯云代金券