使用Github搭建Maven私有遠程倉庫

Maven倉庫

目錄

  • 本地deploy
  • 上傳到github
  • 項目配置依賴
  • 參考鏈接

為了避免重復造輪子姐仅,我們可以在項目中引入依賴唯卖,使用現有的成熟解決方案动分。

也許你不滿足于“借”輪子振愿,還想自己造輪子捷犹,這個時候你就可以把自己的代碼放入公共的倉庫弛饭,供大家使用冕末。

但使用公共的依賴倉庫很麻煩,幸好github為我們提供了一種簡便的大家自己的公共依賴倉庫的方式侣颂。

GitHub

自從今年Github支持免費的個人私有倉庫以后档桃,github越來越成為自己日常學習、寫作和開發(fā)必不可少的工具了憔晒。

之前因為github的私有倉庫收費藻肄,不得已使用了gitee和bitbucket等工具。事實證明拒担,這個世界嘹屯,只需要一個Github。

下面就一步步帶你搭建一下自己的Maven公共倉庫从撼。

本地deploy

在自己本地創(chuàng)建一個目錄州弟,來放自己deploy的文件,然后在自己的項目目錄下執(zhí)行如下Maven命令:

mvn deploy -DaltDeploymentRepository=ijiangtao-net-repo::default::file:/1tool/develop/maven/repository/ijiangtao-net-repo/repository

然后你會看到自己放本地deploy的內容目錄下面已經生成好了依賴所需的所有文件低零。

這里需要特別說明的是這3個文件:

  • maven-metadata.xml
  • maven-metadata.xml.md5
  • maven-metadata.xml.sha1

其中md5, sha1是校驗文件婆翔,它們用來保證這個metadata文件的完整性。

Maven在編繹項目時掏婶,會先嘗試請求maven-metadata.xml啃奴,如果沒有找到,則會嘗試請求到jar文件雄妥,在下載jar文件時也會嘗試下載jar的md5, sha1文件最蕾。

下面就是我本地deploy生成的文件:

maven-metadata.xml
maven-metadata.xml.md5
maven-metadata.xml.sha1
tao-util-core-1.1.01.01-20190420.080520-1.jar
tao-util-core-1.1.01.01-20190420.080520-1.jar.md5
tao-util-core-1.1.01.01-20190420.080520-1.jar.sha1
tao-util-core-1.1.01.01-20190420.080520-1.pom
tao-util-core-1.1.01.01-20190420.080520-1.pom.md5
tao-util-core-1.1.01.01-20190420.080520-1.pom.sha1

這個maven-metadata.xml文件很重要依溯,如果沒有這個文件來指明最新的jar版本,那么即使遠程倉庫里的jar更新了版本瘟则,本地maven編繹時用上-U參數誓沸,也不會拉取到最新的jar。

所以并不能簡單地把jar包放到github上就完事了壹粟,一定要先在本地deploy拜隧,生成maven-metadata.xml文件,并上傳到github上趁仙。

上傳到github

這一步比較簡單洪添,只要用過github的都沒什么難度。

首先在GitHub上創(chuàng)建倉庫雀费,然后把本地deploy的文件所屬的目錄設置為git倉庫干奢,最后push到遠程即可。

項目配置依賴

除了要把你的依賴坐標放到dependencies標簽中之外盏袄,還需要在pom.xml中指定你的repositories的url忿峻。

<dependency>
    <groupId>net.ijiangtao.tech.util</groupId>
    <artifactId>tao-util-core</artifactId>
    <version>1.1.01.01-SNAPSHOT</version>
</dependency>
<repositories>
    <repository>
        <!-- A unique identifier for a repository. -->
        <id>ijiangtao-net-repo</id>
        <!--Human readable name of the repository. -->
        <name>ijiangtao.net repository</name>
        <url>https://raw.githubusercontent.com/ijiangtao/ijiangtao-net-repo/master/repository</url>
        <releases>
            <enabled>true</enabled>
            <checksumPolicy>warn</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
        </snapshots>
    </repository>
</repositories>

這樣你就可以下載遠程倉庫的依賴了。

當你執(zhí)行mvn install -U的時候辕羽,會看到下面的Downloading提示:

Downloading from alimaven: http://maven.aliyun.com/nexus/content/groups/public/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml
Downloading from xxxx: https://github.com/xxxx/xxxx-repo/raw/master/releases/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml
Downloading from yyyy: http://yyyy.yyyy.cn/nexus/content/groups/public/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml
Downloading from sonatype: https://oss.sonatype.org/content/repositories/snapshots/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml
Downloading from nexus-aliyun: http://maven.aliyun.com/nexus/content/groups/public/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml
Downloading from ijiangtao-net-repo: https://raw.githubusercontent.com/ijiangtao/ijiangtao-net-repo/master/repository/net/ijiangtao/tech/util/tao-util/1.1.01.01-SNAPSHOT/maven-metadata.xml

這是Maven在你配置的多個倉庫中依次下載依賴逛尚,因此如果配置的倉庫太多的話,下載速度會受到影響刁愿。

上文中提到的倉庫地址和示例代碼绰寞,可以訪問如下兩個倉庫地址:

參考鏈接

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市铣口,隨后出現的幾起案子滤钱,更是在濱河造成了極大的恐慌,老刑警劉巖脑题,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件件缸,死亡現場離奇詭異,居然都是意外死亡叔遂,警方通過查閱死者的電腦和手機他炊,發(fā)現死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掏熬,“玉大人佑稠,你說我怎么就攤上這事∑旆遥” “怎么了舌胶?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疮丛。 經常有香客問我幔嫂,道長辆它,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任履恩,我火速辦了婚禮锰茉,結果婚禮上,老公的妹妹穿的比我還像新娘切心。我一直安慰自己飒筑,他們只是感情好,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布绽昏。 她就那樣靜靜地躺著协屡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪全谤。 梳的紋絲不亂的頭發(fā)上肤晓,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天,我揣著相機與錄音认然,去河邊找鬼补憾。 笑死,一個胖子當著我的面吹牛卷员,可吹牛的內容都是我干的盈匾。 我是一名探鬼主播,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼子刮,長吁一口氣:“原來是場噩夢啊……” “哼威酒!你這毒婦竟也來了?” 一聲冷哼從身側響起挺峡,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎担钮,沒想到半個月后橱赠,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡箫津,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年狭姨,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苏遥。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡饼拍,死狀恐怖,靈堂內的尸體忽然破棺而出田炭,到底是詐尸還是另有隱情师抄,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布教硫,位于F島的核電站叨吮,受9級特大地震影響辆布,放射性物質發(fā)生泄漏。R本人自食惡果不足惜茶鉴,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一锋玲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧涵叮,春花似錦惭蹂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至穆刻,卻和暖如春置尔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背氢伟。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工榜轿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朵锣。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓谬盐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親诚些。 傳聞我的和親對象是個殘疾皇子飞傀,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內容

  • |-1-更新內容[6.從倉庫解析依賴的機制(重要)] 1Maven倉庫作用 倉庫用來存儲所有項目使用到構件,在ma...
    zlcook閱讀 6,075評論 0 25
  • 在Maven中,任何一個依賴绞吁、插件或者項目構建的輸出幢痘,都可以稱之為構件。 Maven在某個統(tǒng)一的位置存儲所有項目的...
    三也視界閱讀 2,131評論 0 4
  • Maven的基本了解 什么是Maven家破? Maven就是Apache下的一個開源項目颜说。它是用純java開發(fā)的。是一...
    Bcome閱讀 2,831評論 0 7
  • 晚上和室友坐在床上汰聋,兩個人閑聊门粪,我們兩個都22.23了,目前還沒有男朋友烹困,畢業(yè)都快一年了玄妈,工作老是換來換去,工作也...
    溫柔001閱讀 174評論 0 0
  • 在Android開發(fā)的過程中,自定義控件一直是我們繞不開的話題措近。而在這個話題中事件分發(fā)機制也是其中的重點和疑點溶弟,特...
    zhangke3016閱讀 1,189評論 2 28