搭建Nexus倉(cāng)庫(kù)與部署maven項(xiàng)目

搭建Nexus倉(cāng)庫(kù)

  • 下載并安裝 Nexus Repository Manager OSS 2.x
    https://www.sonatype.com/download-oss-sonatype

  • 啟動(dòng)Nexus服務(wù)
    以管理員身份運(yùn)行
    ${安裝目錄}\nexus-2.14.4-03\bin\jsw\windows-x86-64\install-nexus.bat
    ${安裝目錄}\nexus-2.14.4-03\bin\jsw\windows-x86-64\start-nexus.bat

  • 訪問(wèn)Nexus服務(wù)
    通過(guò)http://localhost:8081/nexus/訪問(wèn)nexus首頁(yè)。默認(rèn)的登錄賬號(hào)密碼為amdin/admin123。

Nexus倉(cāng)庫(kù)介紹

搭建好nexus倉(cāng)庫(kù)后,點(diǎn)擊左側(cè)欄鏈接 <u>Repositories</u>,可以查看nexus倉(cāng)庫(kù),如下圖所示。


nexus倉(cāng)庫(kù).png

nexus管理了多個(gè)倉(cāng)庫(kù),其中3rd party,Releases,Snapshots都是托管倉(cāng)庫(kù),可以上傳構(gòu)件(artifacts)。3rd party用于維護(hù)不存在于公共倉(cāng)庫(kù)中的第三方構(gòu)件,Releases用于維護(hù)穩(wěn)定版構(gòu)件,Snapshots用于維護(hù)開發(fā)版構(gòu)件。

當(dāng)在pom.xml文件中聲明version為xxx-SNAPSHOT,則構(gòu)件被認(rèn)為是Snapshot版本,否則被認(rèn)為是Release版本。當(dāng)項(xiàng)目依賴一個(gè)Release版本的構(gòu)件,這個(gè)構(gòu)件只從遠(yuǎn)程倉(cāng)庫(kù)下載一次,之后不再更新。如果構(gòu)件需要更新,則需要用新的版本號(hào)發(fā)布一次,假設(shè)原來(lái)的版本是test1.0,新發(fā)布的版本可以是test1.1,依賴方通過(guò)修改依賴的版本來(lái)更新。一個(gè)構(gòu)件如果需要頻繁的修改,就不適合用Release版本發(fā)布,而應(yīng)該采用Snapshot版本。Snaphost版本的構(gòu)件可以用同一個(gè)版本號(hào)發(fā)布多次,當(dāng)項(xiàng)目依賴一個(gè)Snapshot版本的構(gòu)件,每次build項(xiàng)目時(shí)都會(huì)獲取最新發(fā)布的構(gòu)件。

關(guān)于Snapshots更詳細(xì)的知識(shí),請(qǐng)參考Maven - Snapshots

新建maven項(xiàng)目

打開eclipse
File->New->Project... 選擇 Maven Project。
在New Maven Project面板中,勾選Create a simple project,進(jìn)入下一步。
輸入Group Id:com.test,Artifact Id:testapp,完成。

參考:Create a New Maven Project in Eclipse

eclipse中配置maven環(huán)境

Window->Preferences。
在Preferences面板中,左側(cè)欄選擇Maven->User Settings,右側(cè)欄User Settings中選擇你的settings.xml。
settings.xml為maven的全局配置文件。

部署maven項(xiàng)目

  • pom.xml配置倉(cāng)庫(kù)信息
<distributionManagement>  
    <repository>  
      <id>nexus-releases</id>  
      <url>http://../nexus/content/repositories/releases</url>  
    </repository>  
    <snapshotRepository>  
      <id>nexus-snapshots</id>  
      <url>http://../nexus/content/repositories/snapshots</url>  
    </snapshotRepository>  
</distributionManagement>  

如果構(gòu)件是Release版本,則使用<repository>配置發(fā)布。如果是Snapshot版本,則使用<snapshotRepository>配置發(fā)布,如果沒(méi)有配置<snapshotRepository>,則Snapshot版本的構(gòu)件也會(huì)通過(guò)<repository>配置發(fā)布。

  • settings.xml配置倉(cāng)庫(kù)安全信息
<servers>
    <server>
      <id>nexus-releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>nexus-snapshots</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
</servers>

server可以配置多個(gè),每個(gè)server id必須唯一。這里的server id需要和pom.xml中的repository id或者snapshotRepository id對(duì)應(yīng)。

  • 在eclipse中部署項(xiàng)目
    在Package Explorer面板中選擇項(xiàng)目。
    右鍵,在彈出的菜單中選擇Run As->Maven Build...。
    在Goals欄輸入clean deploy -X,運(yùn)行。
deploy.png

參考:Maven Deploy to Nexus

可能遇到的問(wèn)題:
maven could not transfer artifact 400
解決方法:
1.發(fā)布snapshot版本,而不是release版本。
2.在Nexus倉(cāng)庫(kù)中允許發(fā)布release版本。 解決方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • |-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,453評(píng)論 0 25
  • 首先私服是一種衍生出來(lái)的特殊的Maven遠(yuǎn)程倉(cāng)庫(kù),構(gòu)建私服的好處請(qǐng)看3.5私服 可以幫助大家建立私服的倉(cāng)庫(kù)管理軟件...
    zlcook閱讀 10,824評(píng)論 0 32
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • Nexus是Maven倉(cāng)庫(kù)管理器,管理開發(fā)所需要的構(gòu)件。如果你每次都是從Apache提供的Maven中央倉(cāng)庫(kù)去下載...
    點(diǎn)融黑幫閱讀 3,922評(píng)論 0 6
  • 27年糊涂,點(diǎn)醒就在一剎那 此時(shí)此刻,我非常慶幸自己終于找到了開啟自我內(nèi)心的鑰匙。而這把鑰匙我找了27年,卻不曾想...
    前行女子閱讀 283評(píng)論 1 3

友情鏈接更多精彩內(nèi)容