在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