Maven 將 jar 包上傳到私服 nexus

一、<distributionManagement>

1.1、<distributionManagement>的作用:負(fù)責(zé)管理構(gòu)件的發(fā)布,這是一個(gè)環(huán)境變量。

  • <downloadUrl> URL </downloadUrl>:其它的Maven項(xiàng)目可以通過該URL下載并引用當(dāng)前Maven項(xiàng)目的構(gòu)件。
  • <status>:當(dāng)前Maven項(xiàng)目的狀態(tài),可用的狀態(tài)有以下幾種,并且這個(gè)值不是人為設(shè)置的。而是Maven自動(dòng)設(shè)置的。
    • none:未指明狀態(tài),默認(rèn)值
    • converted:該Maven項(xiàng)目的構(gòu)件已經(jīng)被轉(zhuǎn)換為兼容Maven 2
    • partner:該Maven項(xiàng)目的構(gòu)件保持與另一個(gè)庫的Maven版本一致
    • deployed:該Maven項(xiàng)目的構(gòu)件是通過Maven 2或Maven 3發(fā)布的,最常用的值
    • verified:該Maven項(xiàng)目的構(gòu)件已經(jīng)被驗(yàn)證過

1.2、<distributionManagement>中的<repository>

  • <uniqueVersion>:指定是否產(chǎn)生一個(gè)唯一性的version number還是使用address里的其中version部分。(true or false)
  • <id>:庫的id
  • <name>:庫的名稱
  • <url>:庫的url
  • <layout>:default或者legacy

1.3、<distributionManagement> 中的 <repository> && <snapshotsrepository>各自的含義

  • maven倉庫分為兩種 release發(fā)布倉庫(<repository>) 和 snapshot快照倉庫(<snapshotsrepository>)

  • snapshot快照倉庫用于保存開發(fā)過程中的不穩(wěn)定版本

  • release正式倉庫用來保存穩(wěn)定的發(fā)行版本

  • 定義一個(gè)組件/模塊為快照版本 只需要在pom文件中的該模板的版本號(hào)后面加上 -SNAPSHOT就可以了. 注意:必須是大寫

  • maven會(huì)根據(jù)模塊的版本號(hào)(pom文件中的<version>版本號(hào)</version>)中是否帶有-SNAPSHOT來判斷這個(gè)是快照版本還是正式版本。

  • 如果是快照版本

  • 在mvn deploy時(shí)會(huì)自動(dòng)發(fā)布到快照版本庫中。

  • 而使用快照版本的模塊,在不更改版本號(hào)的情況下,直接編譯打包時(shí),maven會(huì)自動(dòng)從鏡像服務(wù)器上下載最新的快照版本。

  • 如果是正式發(fā)布版本

  • 那么在mvn deploy時(shí)會(huì)自動(dòng)發(fā)布到正式版本庫中。

  • 而使用正式版本的模塊,在不更改版本號(hào)的情況下,編譯打包時(shí),如果本地已經(jīng)存在該版本的模塊則使用本地的而不是主動(dòng)去鏡像服務(wù)器上下載。

二、將 jar 包上傳到私服 nexus

nexus 私服搭建這里就不介紹了,沒搭建過的朋友可以參考

windows 環(huán)境搭建:https://blog.csdn.net/wsjzzcbq/article/details/89071625

筆者這里已經(jīng)搭建完成,nexus 私服地址是:http://192.168.0.140:8082/,下面會(huì)用到

2.1、配置 settings.xml 文件

在本地 maven 的 settings.xml 文件中,<servers> 標(biāo)簽下添加 server 配置

<server>
    <id>wsjz-releases</id>
    <username>admin</username>
    <password>admin123</password>
</server>
<server>
    <id>wsjz-snapshots</id>
    <username>admin</username>
    <password>admin123</password>
</server>
  • username 和 password 是私服 nexus 的
  • id 是隨意命名的,但要和下面使用的地方保持一致

2.2、配置上傳的資源庫地址

給需要上傳到私服的項(xiàng)目,添加資源庫地址

<distributionManagement>
    <repository>
        <id>wsjz-releases</id>
        <name>Releases Repository</name>
        <url>http://192.168.0.140:8082/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>wsjz-snapshots</id>
        <name>Snapshot Repository</name>
        <url>http://192.168.0.140:8082/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>
  • 這里的 id 要和上面的 server 的 id 保持一致
  • name 隨意寫
  • url 地址是 nexus 私服上的 maven-releases 和 maven-snapshots 的地址,可以登錄 nexus 私服copy

2.3、上傳測(cè)試

  • 新建 maven 項(xiàng)目
  • 在 pom 文件中添加上面的資源庫地址
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.wsjz</groupId>
  <artifactId>maven-project-learn</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <distributionManagement>
    <repository>
        <id>wsjz-releases</id>
        <name>Releases Repository</name>
        <url>http://192.168.0.140:8082/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>wsjz-snapshots</id>
        <name>Snapshot Repository</name>
        <url>http://192.168.0.140:8082/repository/maven-snapshots/</url>
    </snapshotRepository>
  </distributionManagement>
</project>
  • 在項(xiàng)目根目錄打開控制臺(tái)


2.3.1、上傳到 maven-snapshots(快照庫)

執(zhí)行命令 mvn deploy 將當(dāng)前SNAPSHOT(快照版)上傳到私服 maven-snapshots

mvn deploy

登錄私服查看

快照版上傳成功

2.3.2、上傳到 maven-releases(發(fā)布庫)

修改項(xiàng)目版本為 0.0.1


執(zhí)行命令 mvn deploy

mvn deploy

登錄私服查看

發(fā)布版上傳成功

登錄私服使用web管理界面直接上傳

2.4、下載上傳到私服的 jar 包

下載上傳到私服的 jar 包

新建 maven 項(xiàng)目

在 pom.xml 文件中添加資源庫配置

<repositories>
    <repository>
        <id>senyue</id>
        <name>senyue respository</name>
        <url>http://192.168.0.140:8082/repository/maven-public/</url>
    </repository>
</repositories>

添加已上傳到私服的依賴

<dependency>
    <groupId>com.wsjz</groupId>
    <artifactId>maven-project-learn</artifactId>
    <version>0.0.1</version>
</dependency>

更新 maven 項(xiàng)目下載依賴

查看是否下載成功

已成功下載

至此完

參考:
https://blog.csdn.net/yeguxin/article/details/77110622

https://blog.csdn.net/wsjzzcbq/article/details/124048283

?著作權(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)容

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