如何借助GitHub搭建属于本身的maven仓库

借助GitHub搭建属于本身的maven仓库

I. 背景

在Github上也写了很多的项目了,而后常常遇到的一个问题就是,不少本身写的项目,但愿在另一个项目中使用时,只能把这个项目下载下来,至关之不方便java

由于大多数的java后端项目都是基于maven管理依赖的,因此就但愿能有一个公共的maven仓库,能够把本身的项目扔进去,而后再应用就方便不少了git

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

II. 实现步骤

1. github仓库创建

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

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

2. 配置本地仓库

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

## 进入目录
cd /Users/yihui/GitHub

## 新建目录
mkdir maven-repository; cd maven-repository

## 新建repository目录
# 这个目录下面就是存放咱们deploy的项目相关信息
# 也就是说咱们项目deploy指定的目录,就是这里
mkdir repository

## 新增一个readme文档
# 保持良好的习惯,每一个项目都有一个说明文档
touch README.md

这个目录结构为何是这样的?hexo

咱们直接看maven配置中默认的目录结构,一样拷贝一份出来而已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

接着就是进行分支管理了ui

  • 约定将项目中的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>

IV. 其余

我的博客: Z+|blog

基于hexo + github pages搭建的我的博客,记录全部学习和工做中的博文,欢迎你们前去逛逛

声明

尽信书则不如,已上内容,纯属一家之言,因本人能力通常,见识有限,如发现bug或者有更好的建议,随时欢迎批评指正,个人微博地址: 小灰灰Blog

扫描关注

QrCode

相关文章
相关标签/搜索