部署構(gòu)建(jar包)至Maven倉庫(Nexus)

當(dāng)開發(fā)人員開發(fā)好構(gòu)建,就可以使用Nexus很容易地把構(gòu)建部署到一個(gè)宿主倉庫,以方便共享。本文分享三種不同的部署需求:

  • 部署發(fā)布版本(release)
  • 部署快照版本(snapshot)
  • 部署第三方構(gòu)建

要把構(gòu)建(jar包)部署到Nexus,需要在pom文件中定義distributionManagement來提供倉庫URL,然后運(yùn)行mvn deploy。Maven會(huì)執(zhí)行一個(gè)HTTP的PUT請(qǐng)求將POM和構(gòu)建推入至你的Nexus。
通常Nexus需要user/password登錄驗(yàn)證才能上傳部署構(gòu)建。如果沒有權(quán)限,會(huì)遇到401 UnAuthorized錯(cuò)誤。所以第一步是要確定有權(quán)限,可以先用賬號(hào)密碼登錄Nexus UI,如果能成功登錄,那么把賬號(hào)密碼配置在setting.xml文件中。這在以下任意一個(gè)文件中配置即可:

  • The Maven install: $M2_HOME/conf/setting.xml
  • A user's install: ${user.home}/.m2/setting.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
    <server>
    <id>example</id>
    <username>username</username>
    <password>password</password>
    </server>
    </servers>
    <pluginGroups></pluginGroups>
    <proxies></proxies>
    <mirrors></mirrors>
    <profiles></profiles>
    </settings>

1. 部署發(fā)布版本

  • pom.xml文件--配置發(fā)布版本倉庫URL

    <project>
      ...
      <distributionManagement>
        ...
        <repository>
          <id>releases</id>
          <name>Internal Release</name>
          <url>http://maven.example.com/content/repositories/releases/</url>
        </repository>
        ...
      </distributionManagement>
      ...
    </project>
    
  • 當(dāng)前項(xiàng)目的根目錄(pom.xml文件所在目錄)執(zhí)行mvn deploy

2. 部署快照版本

  • pom.xml文件--配置發(fā)布版本倉庫URL

    <project>
      ...
      <distributionManagement>
        ...
        <repository>
          <id>Snapshots</id>
          <name>Internal Snapshots</name>
          <url>http://maven.example.com/content/repositories/snapshots/</url>
        </repository>
        ...
      </distributionManagement>
      ...
    </project>
    
  • 當(dāng)前項(xiàng)目的根目錄(pom.xml文件所在目錄)執(zhí)行mvn deploy

3. 部署第三方構(gòu)建

比如有一個(gè)第三方構(gòu)建-Oracle JDBC驅(qū)動(dòng) 需要部署到我們的倉庫中:
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>

  • 下載jar包
  • 執(zhí)行部署命令:
    mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14
    -Dversion=10.2.0.3.0
    -Dpackaging=jar
    -Dfile=ojdbc.jar
    -Durl=http://maven.example.com/content/repositories/thirdparty/
    -DrepositoryId=thirdparty
  • 運(yùn)行這個(gè)mvn deploy:deploy-file之后,該構(gòu)建會(huì)被發(fā)布到Nexus的third-party倉庫中。

參考資料

  1. Maven權(quán)威指南中文版(16.7章節(jié))
  2. 401 UnAuthorized 解決方法
  3. 官網(wǎng)參考
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • |-1-更新內(nèi)容[6.從倉庫解析依賴的機(jī)制(重要)] 1Maven倉庫作用 倉庫用來存儲(chǔ)所有項(xiàng)目使用到構(gòu)件,在ma...
    zlcook閱讀 6,145評(píng)論 0 25
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評(píng)論 18 139
  • 首先私服是一種衍生出來的特殊的Maven遠(yuǎn)程倉庫,構(gòu)建私服的好處請(qǐng)看3.5私服 可以幫助大家建立私服的倉庫管理軟件...
    zlcook閱讀 10,639評(píng)論 0 32
  • 昨天一早又吸出血,思想斗爭了之后終于決定去看醫(yī)生。 七點(diǎn)三刻掛號(hào),九點(diǎn)多才看到。結(jié)果醫(yī)生說哺乳期無法做檢查無法判斷...
    一只不合格的奶牛閱讀 563評(píng)論 0 0
  • 【金剛商學(xué)院】晚自習(xí) 問題15 我的妻子很邋遢、丟三落四,種什么種子讓她整潔 實(shí)際上,保持整潔不需要花上太多的時(shí)間...
    肥安娜baby閱讀 237評(píng)論 0 0