在Github上也写了很多的项目了,而后常常遇到的一个问题就是,不少本身写的项目,但愿在另一个项目中使用时,只能把这个项目下载下来,至关之不方便java
由于大多数的java后端项目都是基于maven管理依赖的,因此就但愿能有一个公共的maven仓库,能够把本身的项目扔进去,而后再应用就方便不少了git
基于此,就有了本文这个教程了github
新建一个repository的前提是有github账号,默认看到本文的是有账号的shell
首先是在github上新建一个仓库,命令随意,如我新建项目为后端
本地指定一个目录,新建文件夹 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
将本地的仓库和远程的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分支 git checkout -b snapshot git push origin snapshot # 也可使用 git branch snapshot , 我一般用上面哪一个,建立并切换分支 ## 建立release分支 git checkout -b release git push origin release
项目的deploy,就须要主动的指定一下deploy的地址了,因此咱们的deploy命令以下
## deploy项目到本地仓库 mvn clean deploy -Dmaven.test.skip -DaltDeploymentRepository=self-mvn-repo::default::file:/Users/yihui/GitHub/maven-repository/repository
上面的命令就比较常见了,主要须要注意的是file后面的参数,根据本身前面设置的本地仓库目录来进行替换
每次进行上面一大串的命令,不太好记,特别是不一样的版本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
基于此,整个步骤完成
上面仓库的基本搭建算是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>
基于hexo + github pages搭建的我的博客,记录全部学习和工做中的博文,欢迎你们前去逛逛
尽信书则不如,已上内容,纯属一家之言,因本人能力通常,见识有限,如发现bug或者有更好的建议,随时欢迎批评指正,个人微博地址: 小灰灰Blog