如何借助GitHub搭建属于自己的maven仓库

简介: 在Github上也写了不少的项目了,然后经常遇到的一个问题就是,很多自己写的项目,希望在另外一个项目中使用时,只能把这个项目下载下来,相当之不方便因为大多数的java后端项目都是基于maven管理依赖的,所以就希望能有一个公共的maven仓库,可以把自己的项目扔进去,然后再应用就方便很多了基于此,就有了本文这个教程了

借助GitHub搭建属于自己的maven仓库



I. 背景


在Github上也写了不少的项目了,然后经常遇到的一个问题就是,很多自己写的项目,希望在另外一个项目中使用时,只能把这个项目下载下来,相当之不方便


因为大多数的java后端项目都是基于maven管理依赖的,所以就希望能有一个公共的maven仓库,可以把自己的项目扔进去,然后再应用就方便很多了


基于此,就有了本文这个教程了


II. 实现步骤


1. github仓库建立


新建一个repository的前提是有github帐号,默认看到本文的是有帐号的

首先是在github上新建一个仓库,命令随意,如我新建项目为


  • github.com/liuyueyi/ma…


2. 配置本地仓库


本地指定一个目录,新建文件夹 maven-repository, 如我的本地配置如下

## 进入目录
cd /Users/yihui/GitHub
## 新建目录
mkdir maven-repository; cd maven-repository
## 新建repository目录
# 这个目录下面就是存放我们deploy的项目相关信息
# 也就是说我们项目deploy指定的目录,就是这里
mkdir repository
## 新增一个readme文档
# 保持良好的习惯,每个项目都有一个说明文档
touch README.md
复制代码


这个目录结构为什么是这样的?


我们直接看maven配置中默认的目录结构,同样拷贝一份出来而已


3. 仓库关联


将本地的仓库和远程的github仓库关联起来,执行的命令也比较简单了


git add .
git commit -m 'first comit'
git remote add origin https://github.com/liuyueyi/maven-repository.git
git push -u origin master
复制代码


接着就是进行分支管理了


  • 约定将项目中的snapshot版,deploy到仓库的 snapshot分支上
  • 约定将项目中的release版,deploy到仓库的 release分支上
  • master分支管理所有的版本


所以需要新创建两个分支


## 创建snapshot分支
git checkout -b snapshot 
git push origin snapshot
# 也可以使用 git branch snapshot , 我通常用上面哪个,创建并切换分支
## 创建release分支
git checkout -b release
git push origin release
复制代码


4. 项目deploy


项目的deploy,就需要主动的指定一下deploy的地址了,所以我们的deploy命令如下


## deploy项目到本地仓库
mvn clean deploy -Dmaven.test.skip  -DaltDeploymentRepository=self-mvn-repo::default::file:/Users/yihui/GitHub/maven-repository/repository
复制代码


上面的命令就比较常见了,主要需要注意的是file后面的参数,根据自己前面设置的本地仓库目录来进行替换


5. deploy脚本


每次进行上面一大串的命令,不太好记,特别是不同的版本deploy到不同的分支上,主动去切换分支并上传,也挺麻烦,所以就有必要写一个deploy的脚本了


由于shell实在是不太会写,所以下面的脚本只能以凑合能用来说了


#!/bin/bash
if [ $# != 1 ];then
  echo 'deploy argument [snapshot(s for short) | release(r for short) ] needed!'
  exit 0
fi
## deploy参数,snapshot 表示快照包,简写为s, release表示正式包,简写为r
arg=$1
DEPLOY_PATH=/Users/yihui/GitHub/maven-repository/
CURRENT_PATH=`pwd`
deployFunc(){
  br=$1
  ## 快照包发布
  cd $DEPLOY_PATH
  ## 切换对应分支
  git checkout $br
  cd $CURRENT_PATH
  # 开始deploy
  mvn clean deploy -Dmaven.test.skip  -DaltDeploymentRepository=self-mvn-repo::default::file:/Users/yihui/GitHub/maven-repository/repository
  # deploy 完成,提交
  cd $DEPLOY_PATH
  git add -am 'deploy'
  git push origin $br
  # 合并master分支
  git checkout master
  git merge $br
  git commit -am 'merge'
  git push origin master
  cd $CURRENT_PATH
}
if [ $arg = 'snapshot' ] || [ $arg = 's' ];then
  ## 快照包发布
  deployFunc snapshot
elif [ $arg = 'release' ] || [ $arg = 'r' ];then
  ## 正式包发布
  deployFunc release
else
  echo 'argument should be snapshot(s for short) or release(r for short). like: `sh deploy.sh snapshot` or `sh deploy.sh s`'
fi
复制代码


将上面的脚本,考本到项目的根目录下,然后执行


chmod +x deploy.sh
## 发布快照包
./deploy.sh s
# sh deploy.sh snapshot 也可以
## 发布正式包
./deploy.sh r
复制代码


基于此,整个步骤完成


III. 使用


上面仓库的基本搭建算是ok了,然后就是使用了,maven的pom文件应该怎么配置呢?

首先是添加仓库地址


添加仓库

如果要区分snapshot和release的话,如下配置

<repositories>
    <repository>
        <id>yihui-maven-repo-snap</id>
        <url>https://raw.githubusercontent.com/liuyueyi/maven-repository/snapshot/repository</url>
    </repository>
    <repository>
        <id>yihui-maven-repo-release</id>
        <url>https://raw.githubusercontent.com/liuyueyi/maven-repository/release/repository</url>
    </repository>
</repositories>
复制代码


如果不care的话,直接添加下面的即可

<repositories>
    <repository>
        <id>yihui-maven-repo</id>
        <url>https://raw.githubusercontent.com/liuyueyi/maven-repository/master/repository</url>
    </repository>
</repositories>
复制代码


仓库配置完毕之后,直接引入依赖即可,如依赖我的Quick-Alarm包,就可以添加下面的依赖配置

<dependency>
  <groupId>com.hust.hui.alarm</groupId>
  <artifactId>core</artifactId>
  <version>0.1</version>
</dependency>



相关文章
|
开发工具 git 开发者
2024最简七步完成 将本地项目提交到github仓库方法
该文章提供了一个简洁的七步教程,指导用户如何将本地项目提交到GitHub仓库。
2024最简七步完成 将本地项目提交到github仓库方法
|
开发工具 git C++
【够用就好002】外行第一次发布github项目仓库
#deepseek#自学 记录外行学习代码的历程 今天是上传自己的工具代码到github仓库,一直以来是伸手党克隆别人的项目,今天在deepseek的辅导下上传自己的内容。
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
1941 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
敏捷开发 Java 持续交付
阿里云云效产品使用合集之maven仓库是否可以代替自建的Nexus
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
19429 11
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
948 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
787 0
|
开发工具 git
vscode推送项目到github仓库故障解决1
本文介绍了如何优雅解决本地仓库与远程仓库历史记录不一致的问题,并提供避免未来问题的最佳实践。核心在于理解问题根源(如历史记录差异和常见原因),采用推荐的解决方案(先本地初始化再关联远程仓库),并遵循一致的工作流程、团队协作规范及熟悉 Git 命令。通过强制推送或合并无关历史记录等方式处理现有冲突,同时养成良好习惯以预防类似问题。
|
机器学习/深度学习 人工智能 自然语言处理
PeterCat:一键创建开源项目 AI 问答机器人,自动抓取 GitHub 仓库信息、文档和 issue 等构建知识库
PeterCat 是一款开源的智能答疑机器人,能够自动抓取 GitHub 上的文档和 issue 构建知识库,提供对话式答疑服务,帮助开发者和社区维护者高效解决技术问题。
1314 7
PeterCat:一键创建开源项目 AI 问答机器人,自动抓取 GitHub 仓库信息、文档和 issue 等构建知识库
|
存储 安全 API
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
GitHub主要仓库泄露访问令牌,代码与云环境面临风险

推荐镜像

更多