maven備忘

1. 搭建私有庫(kù)

使用docker搭建私有maven庫(kù)占锯,docker image為sonatype/nexus3

  1. 建立數(shù)據(jù)目錄
mkdir /path/of/maven/data
chown 200 /path/of/maven/data

nexus3的運(yùn)行用戶id為200,所以需要把數(shù)據(jù)目錄的owner改為200。

  1. 啟動(dòng)服務(wù)
docker run -d -p 8081:8081 --name nexus -v /path/of/maven/data:/nexus-data sonatype/nexus3
  1. 登錄nexus服務(wù)

    在瀏覽器中輸入127.0.0.1:8081枝秤,點(diǎn)擊sign in鏈接花颗,默認(rèn)的管理員用戶名為admin密碼為admin123卖哎。
  2. 創(chuàng)建repository

    登錄后,在管理員頁(yè)面录淡,可以創(chuàng)建自己的repository捌木。如果創(chuàng)建自己的私有庫(kù),創(chuàng)建時(shí)嫉戚,選擇maven2 (hosted)刨裆,如果創(chuàng)建代理庫(kù),則選擇maven2 (proxy)彬檀。詳見(jiàn)參考文檔[2]
    1. hosted類型

      這里需要變更的是Version policy帆啃,有3個(gè)選擇:
      1. Release - 表明本庫(kù)里放置的是正式發(fā)布的庫(kù)文件
      2. Snapshot - 表明本庫(kù)里放置的是開(kāi)發(fā)中的庫(kù)文件
      3. Mixed - 表明庫(kù)里面放置了上述兩種庫(kù)文件
    2. proxy類型

      這里需要填寫(xiě)的是Remote storage項(xiàng),可以填寫(xiě)aliyun的maven鏡像地址http://maven.aliyun.com/nexus/content/groups/public/

經(jīng)過(guò)上面的步驟凤覆,私有maven庫(kù)建立完畢链瓦。接下來(lái)配置本地的maven配置文件,來(lái)使用私有maven庫(kù)盯桦。

2. 配置maven setting.xml

maven設(shè)定文件為~/.m2/setting.xml

<settings>
    <profiles>
        <profile>
            <id>dev</id>
            <repositories>
                <repository>
                    <id>mymvn</id>
                    <url>http://127.0.0.1:8081/repository/mymvn/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>
    <servers>
        <server>
            <id>mymvn</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
    </servers>
    <mirrors>
        <mirror>
            <id>alimavenlocal</id>
            <name>aliyun maven local</name>
            <url>http://127.0.0.1:8081/repository/aliyunmaven/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>
</settings>

上面的配置文件配置了1個(gè)hosted庫(kù)慈俯,1個(gè)proxy庫(kù)。以及上傳文件時(shí)需要用的用戶名密碼拥峦。這里在profiles中配置repository贴膘,可以根據(jù)不同的profile使用不同的repository

3. 部署jar到私有庫(kù)

使用mvn命令把jar文件上傳到hosted庫(kù)略号,以alipay sdk為例:

mvn deploy:deploy-file \
  -DgroupId=com.alipay \
  -DartifactId=sdk-java \
  -Dversion=20170829142630 \
  -Dpackaging=jar \
  -Dfile=alipay-sdk-java20170829142630.jar \
  -Durl=http://127.0.0.1:8081/repository/mymvn/ \
  -DrepositoryId=mymvn

4. 配置pom.xml使用私有庫(kù)

按照下面的配置即可下載到剛才上傳的alipay sdk

<project>
...
    <repositories>
        <repository>
            <id>mymvn</id>
            <url>http://127.0.0.1:8081/repository/mymvn/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>com.alipay</groupId>
            <artifactId>sdk-java</artifactId>
            <version>20170829142630</version>
        </dependency>
    </dependencies>
</project>

5. 配置pom.xml刑峡,發(fā)布編譯的成果到hosted庫(kù)

<project>
...
    <repositories>
        <repository>
            <id>mymvn</id>
            <url>http://127.0.0.1:8081/repository/mymvn/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

pom.xml所在目錄運(yùn)行下面命令,把自己開(kāi)發(fā)的庫(kù)部署到hosted庫(kù)中玄柠,mvn會(huì)根據(jù)pom中的version屬性判斷發(fā)布的是release版還是snapshot版突梦。

mvn deploy

6. 版本發(fā)布

每次發(fā)布的時(shí)候,需要修改pom.xml中的版本號(hào)羽利,打包宫患,測(cè)試,提交代碼这弧,上傳jar文件到mvn庫(kù)娃闲。上述一系列動(dòng)作虚汛,可以使用release的插件來(lái)自動(dòng)完成。命令如下:

$ mvn release:prepare
...
[INFO] Working directory: /Users/menglj/workspace/qiyitech/pfw
[INFO] Checking dependencies and plugins for snapshots ...
What is the release version for "pfw"? (cn.com.qiyitech:pfw) 0.4.0: : 
# maven會(huì)根據(jù)pom中的版本信息來(lái)發(fā)布皇帮,如果pom中寫(xiě)的是`0.4.0-SNAPSHOT`卷哩,
# 則發(fā)布的版本為`0.4.0`。這里直接回車即可属拾。
What is SCM release tag or label for "pfw"? (cn.com.qiyitech:pfw) pfw-0.4.0: : 
# tag名稱将谊,默認(rèn)即可
What is the new development version for "pfw"? (cn.com.qiyitech:pfw) 0.4.1-SNAPSHOT: : 
# 發(fā)布后,下一版本的版本號(hào)是多少捌年,可以改為0.5.0-SNAPSHOT

命令執(zhí)行結(jié)束后瓢娜,會(huì)把打包好的package上傳到pom中配置的maven庫(kù)中,修改pom.xml中相應(yīng)版本號(hào)礼预,并提交到版本庫(kù)中眠砾,打上相應(yīng)的tag。

7. 配置maven鏡像

修改maven的settings.xml托酸,增加如下字段:

<settings>
    <mirrors>
        <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>*</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
    </mirrors>
</settings>

如果自己搭建了私有庫(kù)褒颈,在鏡像中沒(méi)有私有庫(kù)中的內(nèi)容,則修改mirrorOf屬性[3]励堡,指明鏡像的庫(kù)ID即可谷丸,例如:

<mirrorOf>central</mirrorOf>

或者把不走鏡像的私有庫(kù)ID排除

<mirrorOf>*,!mymvn</mirrorOf>

參考文檔

  1. maven 安裝alipay-sdk包到本地及遠(yuǎn)程倉(cāng)庫(kù)
  2. maven使用Nexus私有倉(cāng)庫(kù)進(jìn)行管理
  3. maven repository mirrors
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市应结,隨后出現(xiàn)的幾起案子刨疼,更是在濱河造成了極大的恐慌,老刑警劉巖鹅龄,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揩慕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡扮休,警方通過(guò)查閱死者的電腦和手機(jī)迎卤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)玷坠,“玉大人蜗搔,你說(shuō)我怎么就攤上這事“吮ぃ” “怎么了樟凄?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)兄渺。 經(jīng)常有香客問(wèn)我缝龄,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任二拐,我火速辦了婚禮,結(jié)果婚禮上凳兵,老公的妹妹穿的比我還像新娘百新。我一直安慰自己,他們只是感情好庐扫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布饭望。 她就那樣靜靜地躺著,像睡著了一般形庭。 火紅的嫁衣襯著肌膚如雪铅辞。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,231評(píng)論 1 299
  • 那天萨醒,我揣著相機(jī)與錄音斟珊,去河邊找鬼。 笑死富纸,一個(gè)胖子當(dāng)著我的面吹牛囤踩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晓褪,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼堵漱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了涣仿?” 一聲冷哼從身側(cè)響起勤庐,我...
    開(kāi)封第一講書(shū)人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎好港,沒(méi)想到半個(gè)月后愉镰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡媚狰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年岛杀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崭孤。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡类嗤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辨宠,到底是詐尸還是另有隱情遗锣,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布嗤形,位于F島的核電站精偿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笔咽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一搔预、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叶组,春花似錦拯田、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至侣监,卻和暖如春鸭轮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背橄霉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工窃爷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人姓蜂。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓吞鸭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親覆糟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刻剥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)滩字,斷路器造虏,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • |-1-更新內(nèi)容[6.從倉(cāng)庫(kù)解析依賴的機(jī)制(重要)] 1Maven倉(cāng)庫(kù)作用 倉(cāng)庫(kù)用來(lái)存儲(chǔ)所有項(xiàng)目使用到構(gòu)件,在ma...
    zlcook閱讀 6,052評(píng)論 0 25
  • 首先私服是一種衍生出來(lái)的特殊的Maven遠(yuǎn)程倉(cāng)庫(kù)麦箍,構(gòu)建私服的好處請(qǐng)看3.5私服 可以幫助大家建立私服的倉(cāng)庫(kù)管理軟件...
    zlcook閱讀 10,541評(píng)論 0 32
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,806評(píng)論 6 342
  • 第一天
    大健康大未來(lái)閱讀 131評(píng)論 0 0