maven


1、介紹

1.1、概念

Maven 是 Apache 下的一個純 Java 開發的開源項目,是一個項目構建和管理的工具。將項目開發和管理過程抽象成一個項目對象模型(POM)

img

1.2、作用

  • 項目構建:提供標准的、跨平台的自動化項目構建方式

  • 依賴管理:方便快捷的管理項目依賴的資源(jar包),避免資源間的版本沖突問題

  • 統一開發結構:提供標准的、統一的項目結構

img

2、下載與安裝

2.1、下載

我們安裝在本地,所以選擇windows版本。

img

2.2、解壓

因為maven是免安裝綠色版本,所以直接解壓即可使用。

各目錄結構說明:

  • bin:可執行程序目錄

  • boot:maven自身的啟動加載器

  • conf:maven配置文件的存放目錄

  • lib:maven運行所需庫的存放目錄

img

2.3、配置環境變量

打開windows設置------>搜索環境變量------>

img

img

img

img

img

img

使用命令 mvn -version 來測試maven是否配置成功

img

出現上圖字樣,則表示maven已經安裝配置完畢!撒花❀❀❀

3、maven基礎概念

3.1、倉庫

用於存儲資源,主要是各種jar包。

img

3.1.1、倉庫分類

  • 本地倉庫:自己電腦上存儲資源的倉庫,連接遠程倉庫獲取資源

  • 遠程倉庫:非本機電腦上的倉庫,為本地倉庫提供資源

    • 中央倉庫:Maven團隊維護,存儲所有資源的倉庫
  • 私服:部門/公司范圍內存儲資源的倉庫,從中央倉庫獲取資源

3.1.2、私服的作用

  • 保存具有版權的資源,包含購買或自主研發的jar包;中央倉庫中的jar包都是開源的,不能存儲具有版權的資源
  • 一定范圍內共享資源,僅對內部開放,不對外共享

3.2、坐標

3.2.1、介紹

maven中的坐標用於描述倉庫資源的位置。

3.2.2、主要組成

  • groupId:定義當前maven項目隸屬組織名稱(通常是域名反寫,例如org.apache)

  • artifactId:定義當前maven項目名稱(通常是模板名稱,例如CRM、SMS)

  • version:定義當前項目版本號

3.2.3、作用

使用唯一標識,唯一性定位資源位置,通過該標識可以將資源的識別與下載工作交由機器完成。

3.3、倉庫配置

3.3.1、本地倉庫配置

使用nodpad++打開maven解壓目錄下conf文件夾下的 settings.xml 文件。

img

打開后,找到第52行,可以看到maven默認下載的jar包放在 ${user.home}/.m2/repository,即用戶目錄.m2\repository。

img

jar默認下載目錄。

img

當然如果想修改jar包下載的地方(即本地倉庫),只需照着如下示例修改成自己的配置即可。

img

3.3.2、遠程倉庫配置

maven默認連接的遠程倉庫位置。

<repositories>
  <repository>
    <id>central</id>
    <name>Central Repository</name>
    <url>https://repo.maven.apache.org/maven2</url>
    <layout>default</layout>
    <snapshots>
    	<enabled>false</enabled>
    </snapshots>
  </repository>
</repositories>

3.3.3、鏡像倉庫配置(配置阿里雲鏡像)

在打開的 settings.xml 配置文件中找到 <mirrors></mirrors> 標簽中添加 <mirror></mirror> 節點。

img

<mirror>
  <!--此鏡像的唯一標識符,用來區分不同的mirror元素-->
  <id>aliyunmaven</id>
  <!--對哪種倉庫進行鏡像,簡單的說就是替代哪個倉庫 -->
  <mirrorOf>central</mirrorOf>
  <!--鏡像名稱-->
  <name>阿里雲公共倉庫</name>
  <!--鏡像URL-->
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

4、maven項目

4.1、idea的maven配置

當前項目的maven配置

img

當創建新項目時的maven配置

img

img

4.2、maven項目構建命令

maven構建命令使用 mvn 開頭,后面添加參數,可以一次執行多個命令,使用空格分隔。

mvn compile #編譯
mvn clean #清理
mvn test #測試
mvn package	#打包
mvn install #安裝到本地倉庫

如果是使用idea,則可以使用圖形化界面快捷操作。

img

4.3、創建空的maven項目

使用idea創建一個空的maven項目。

img

img

img

查看當前項目的結構,使用快捷鍵 ctrl+alt+shift+s 或者使用如下操作:

img

img

img

img

4.4、創建maven的web項目

使用idea創建一個maven的web項目。

img

img

開始從阿里雲倉庫上下載資源。

img

img

安裝tomcat插件

在項目的 pom.xml 配置文件中引入

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.2</version>
      <configuration>
        <port>80</port>
        <path>/</path>
      </configuration>
    </plugin>
  </plugins>
</build>

img

雙擊運行 tomcat7:run 命令啟動web項目:

img

訪問本地80端口,可以看到運行結果:

img

5、依賴管理

5.1、依賴配置

  • 依賴指的是當前項目運行所需要的jar包,一個項目可以設置多個依賴。
  • 格式:
<!--設置當前項目所依賴的所有jar包坐標-->
<dependencies>
  <!--設置具體的依賴坐標-->
  <dependency>
    <!--依賴所屬的組織Id-->
    <groupId>junit</groupId>
    <!--依賴所屬的項目Id-->
    <artifactId>junit</artifactId>
    <!--依賴的版本號-->
    <version>4.11</version>
  </dependency>
</dependencies>

5.2、依賴傳遞重要

  • 依賴具有傳遞性

    • 直接依賴:在當前項目中通過依賴配置建立的依賴關系
  • 間接依賴:被依賴的資源如果依賴其他資源,當前項目間接依賴其他資源(比較拗口,意思就是如果A依賴B,而B依賴C,那么A就間接依賴C)

  • 依賴傳遞沖突問題

    • 路徑最短者優先原則:當依賴中出現相同的資源時,層級越深,優先級越低,層級越淺,優先級越高
  • 路徑相同先聲明優先原則:當資源在相同層級被依賴時,配置順序靠前的覆蓋配置順序靠后的

    • 特殊優先:當同級配置了相同資源的不同版本,后配置的覆蓋先配置的(概率是書寫錯誤,不應該出現這種情況)

img

5.3、可選依賴

可選依賴指對外隱藏當前所依賴的資源---不透明。

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <optional>true</optional>
</dependency>

5.4、排除依賴重要

排除依賴指主動斷開依賴的資源,被排除的資源無需指定版本---不需要。

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <exclusions>
    <exclusion>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-core</artifactId>
    </exclusion>
  </exclusions>
</dependency>

5.5、依賴范圍重要

依賴的jar包默認情況下可以在任何地方使用,可以通過scope標簽設定其作用范圍

作用范圍:

  • 主程 序范圍有效(main文件夾范圍內)

  • 測試程序范圍有效(test文件夾范圍內)

  • 是否參與打包(package指令范圍內)

img

5.6、依賴范圍傳遞性(了解)

帶有依賴范圍的資源在進行傳遞時,作用范圍將受到影響。具體看使用效果。

img

6、生命周期與插件

6.1、項目構建生命周期

6.1.1、介紹

maven構建生命周期描述的是一次構建過程經歷了多少個事件

img

6.1.2、3個階段

maven對項目構建的生命周期划分為3個階段。

6.1.2.1、clean生命周期
  1. pre-clean:執行一些需要在clean之前完成的工作

  2. clean:移除所有上一次構建生成的文件

  3. post-clean:執行一些需要在clean之后立刻完成的工作

6.1.2.2、default構建生命周期

核心工作是編譯、測試、打包、安裝、部署。

img

在執行某一個操作時,同時會執行該操作前面的所有操作

img

6.1.2.3、site構建生命周期
  1. pre-site:執行一些需要在生成站點文檔之前完成的工作

  2. site:生成項目的站點文檔

  3. post-site:執行一些需要在生成站點文檔之后完成的工作,並且為部署做准備

  4. site-deploy:將生成的站點文檔部署到特定的服務器上

6.2、插件重要

  • 插件與生命周期內的階段綁定,在執行到對應生命周期時執行對應的插件功能

  • 默認maven在各個生命周期上綁定有預設的功能

  • 通過插件可以自定義其他功能

用戶可以根據需要將任何插件目標綁定到任何生命周期的任何階段,如配置在 generate-test-resources 生成測試資源文件階段的時候使用 maven-source-plugin 插件將main文件夾進行源碼打包。

<build> 
  <plugins>
		<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
      <version>2.2.1</version>
      <executions>
        <execution> 
            <goals>
              <goal>jar</goal> 
            </goals>
            <phase>generate-test-resources</phase> 
         </execution>
			</executions> 
    </plugin>
	</plugins> 
</build>

7、聚合重要

7.1、作用

用於快速構建maven工程,一次性構建多個項目/模塊。即編譯、測試、打包、部署該模塊的時候會同時操作關聯的模塊。

7.2、制作方式

  1. 創建一個空模塊,打包類型定義為pom
<packaging>pom</packaging>
  1. 定義當前模塊進行構建操作時關聯的其他模塊名稱,注意,module內的值為關聯模塊的pom文件相對於當前pom文件所在文件夾目錄。

如下示例就是關聯模塊與當前模塊平級,如果關聯模塊位於當前模塊文件夾內,則沒有../

<!--當前父模塊有哪些子模塊-->
<modules> 
  <module>../ssm_controller</module> 
  <module>../ssm_service</module> 
  <module>../ssm_dao</module> 
  <module>../ssm_pojo</module>
</modules>

注意事項:參與聚合操作的模塊最終執行順序與模塊間的依賴有關,與配置順序無關。

8、繼承重要

8.1、作用

通過繼承可以實現在子模塊中沿用父模塊中的配置。

8.2、制作方式

在子模塊中聲明其父模塊坐標與pom文件的位置。

<!-- 定義該模塊的父模塊 --> 
<parent> 
  <groupId>com.itheima</groupId> 
  <artifactId>ssm</artifactId> 
  <version>1.0-SNAPSHOT</version>
<!-- 填寫父模塊的pom文件所在位置 --> 
  <relativePath>../ssm/pom.xml</relativePath>
</parent>

8.3、依賴繼承

子模塊將自動繼承父模塊中的依賴

父模塊maven-java中引入 spring-boot-starter 依賴,子模塊 maven-java-001maven-java-002將自動繼承父模塊maven-javaspring-boot-starter 的依賴。

<groupId>org.xiaorang</groupId>
<artifactId>maven-java</artifactId>
<version>1.0.0-SNAPSHOT</version>

<modules>
  <module>maven-java-001</module>
  <module>maven-java-002</module>
</modules>

<packaging>pom</packaging>

<!--自定義屬性列表-->
<properties>
  <maven.compiler.source>8</maven.compiler.source>
  <maven.compiler.target>8</maven.compiler.target>
</properties>

<!--在該標簽中編寫的依賴,子模塊會自動繼承-->
<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <version>2.5.3</version>
  </dependency>
</dependencies>

img

8.4、依賴管理

在父模塊中進行依賴管理子模塊中需要聲明式的引入依賴,但是無需聲明依賴版本版本將使用父模塊依賴管理中依賴的版本號,達到由父模塊統一控制依賴的版本號。

在父模塊中進行依賴管理:

<!--在該標簽中聲明的依賴,子模塊可以選擇性的繼承,同時省略版本號-->
<dependencyManagement>
  <!--具體的依賴-->
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.1.9.RELEASE</version>
    </dependency>
  </dependencies>
</dependencyManagement>

在子模塊中聲明式引入依賴:

<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
  </dependency>
</dependencies>

9、聚合與繼承的異同點

  1. 作用:

    1. 聚合用於快速構建項目
  2. 繼承用於快速配置

  3. 相同點:

    1. 聚合與繼承的pom.xml文件打包方式均為pom,可以將兩種關系制作到同一pom文件中
  4. 聚合與繼承均屬於設計型模塊,並無實際的模塊內容

  5. 不同點:

    1. 聚合時在當前模塊中配置關系,聚合可以感知到參與聚合的模塊有哪些
  6. 繼承是在子模塊中配置關系,父模塊無法感知哪些子模塊繼承了自己

10、屬性重要

問題:如果對於spring的資源版本都應該使用5.1.9.RELEASE版本,但是你其中一個資源寫錯了,寫的不是這個版本號或者說想將spring的資源版本都升級到5.2.0.RELEASE版本,這個時候你是不是需要將所有的spring資源的版本號都改成5.2.0.RELEASE版本。

方案:屬性

10.1、自定義屬性

  1. 作用:等同於定義變量,方便統一維護版本號。
  2. 定義格式:
<!--定義自定義屬性--> 
<properties> 
  <spring.version>5.1.9.RELEASE</spring.version> 
  <junit.version>4.12</junit.version>
</properties>
  1. 調用格式:
<dependency> 
  <groupId>org.springframework</groupId> 
  <artifactId>spring-context</artifactId> 
  <version>${spring.version}</version>
</dependency>

10.2、內置屬性

  1. 作用:使用maven內置屬性,快速配置。
  2. 調用格式:${basedir} ${version}

10.3、Setting屬性

  1. 作用:使用maven配置文件setting.xml中的標簽屬性,用於動態配置。
  2. 調用格式:${settings.localRepository

10.4、Java系統屬性

  1. 作用:讀取Java系統屬性

  2. 調用格式:${user.home}

  3. 系統屬性查詢方式:mvn help:system

10.5、環境變量屬性

  1. 作用:使用maven配置文件setting.xml中的標簽屬性,用於動態配置

  2. 調用格式:${env.JAVA_HOME}

  3. 環境變量屬性查詢方式:mvn help:system

11、版本管理

11.1、工程版本

  1. SNAPSHOT(快照版本)

    1. 項目開發過程中,為方便團隊成員合作,解決模塊間相互依賴和時時更新的問題,開發者對每個模塊進行構建的時候,輸出的臨時性版本就叫快照版本(測試階段版本)
  2. 快照版本會隨着開發的進展不斷更新

  3. RELEASE(發布版本)

    1. 項目開發進入階段里程碑后,向團隊外部發布較為穩定的版本,這種版本對應的構件文件是穩定的,即便進行功能的后續開發,也不會改變當前發布版本內容,這種版本成為發布版本

11.2、工程版本號約定

約定規范:

  • <主版本>.<次版本>.<增量版本>.<里程碑版本>

  • 主版本:表示項目重大架構的變更,如Spring5相較於Spring4的迭代

  • 次版本:表示有較大的功能增加和變化,或者全面系統的修復漏洞

  • 增量版本:表示有重大漏洞的修復

  • 里程碑版本:表明一個版本的里程碑(版本內部)。這樣的版本同下一個正式版本相比,相對來說不是很穩定,有待更多的測試

12、資源配置

  1. 作用:在任意配置文件引用pom文件中定義的屬性。

  2. 調用格式:${屬性名}

  3. 如何開啟配置文件可以加載pom文件中定義的屬性:

<!--配置資源文件對應的信息-->
<resources>
  <resource>
    <!--設定配置文件對應的位置目錄,支持使用屬性動態設定路徑-->
    <directory>${project.basedir}/src/main/resources</directory>
    <!--開啟對配置文件的資源加載過濾-->
    <filtering>true</filtering>
  </resource>
</resources>

13、多環境開發配置

13.1、多環境配置

<!--創建多環境-->
<profiles>
  <!--定義具體的環境:生產環境-->
  <profile>
    <!--定義環境對應的唯一名稱-->
    <id>pro</id>
    <!--定義環境中的專用的屬性值-->
    <properties>
      <jdbc.url>jdbc:mysql://127.1.1.1:3306/test</jdbc.url>
    </properties>
    <!--設置默認啟動-->
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
  </profile>
  <!--定義具體的環境:開發環境-->
  <!--格式同上-->
</profiles>

13.2、加載指定環境

  1. 作用:加載指定環境配置

  2. 調用格式:mvn 指令 -p 環境定義id

  3. 范例:mvn install -p pro

14、跳過測試

14.1、必要性

如執行maven打包發布項目時,如果測試類中有測試用例代碼,打包maven默認會將測試用例一起編譯並執行,編譯執行不通過則會報錯。

14.2、方法

14.2.1、使用mvn命令

# 不執行測試用例,但編譯測試用例類生成相應的class文件至target/test-classes下
mvn clean install -DskipTests
# 不執行測試用例,也不編譯測試用例類
mvn clean install -Dmaven.test.skip=true

14.2.2、使用idea的maven界面

沒有跳過測試時,雙擊執行打包,控制台輸出沒有測試用例需要執行。

img

點擊跳過測試后,test生命周期圖標變灰,雙擊執行打包時,控制台輸出測試用例已跳過。

img

14.2.3、使用配置文件

添加 maven-surefire-plugin 插件,設置跳過測試。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.22.2</version>
  <configuration>
    <skipTests>true</skipTests><!--設置跳過測試-->
  </configuration>
</plugin>

可以看到即使沒有點擊跳過測試按鈕,雙擊執行打包時,控制台輸出的依然是測試用例已跳過。

img

詳細指定

  1. 包名路徑,文件名帶后綴

  2. 支持通配符*,其中**表示任何包,*表示任何字符

  3. excludes優先級高於includes

<plugin>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.22.2</version>
  <configuration>
    <!--詳細指定要跑的測試-->
    <includes>
      <include>com/jerry/AppTest*.java</include>
    </includes>
    <!--詳細指定排除的測試-->
    <excludes>
      <exclude>com/jerry/AppTest.java</exclude>
      <exclude>com/jerry/AppTest1.java</exclude>
    </excludes>
  </configuration>
</plugin>

15、自定義骨架

maven官方通過插件給我們提供了大量的模板,但是這些模板或多或少的都存在一定的問題,無法滿足我們實際的需求,所以我們需要根據自己的需求自定義模板出來。

15.1、生成模板

根據已經存在的項目創建骨架,在pom.xml文件中添加骨架插件 maven-archetype-plugin

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-archetype-plugin</artifactId>
  <version>2.2</version>
</plugin>

在idea的maven界面中可以看到這個插件

img

使用mvn命令將該項目做成骨架或者使用idea界面的插件按鈕

mvn archetype:create-from-project

img

生成骨架的時候如果出現如下錯誤,需要在maven安裝目錄將mvn.cmd復制拷貝一份,名字改成mvn.bat。

img

骨架生成成功

img

切換到生成的骨架項目目錄

cd target\generated-sources\archetype

向本地倉庫中發布

mvn install

img

最后執行mvn archetype:crawl命令 或者使用idea的maven界面中的插件按鈕

img

執行完畢之后,在maven的本地倉庫目錄中生成一個archetype-catalog.xml文件。

img

15.2、使用模板

idea安裝 maven archetype catalogs 插件

img

img

添加成功之后,在新建maven項目的時候就可以選到剛才創建的骨架。

img

16、私服

16.1、簡介

私服是架設在局域網的一種特殊的遠程倉庫,目的是代理遠程倉庫及部署第三方構件。有了私服之后,當maven需要下載構件時,直接請求私服,私服上存在則下載到本地倉庫;否則,私服請求外部的遠程倉庫,將構件下載到私服,再提供給本地倉庫下載。

img

16.2、必要性(優點)

  1. 減少網絡帶寬流量。如果沒有私服,我們所需的所有構件都需要通過maven的中央倉庫或者第三方的maven倉庫下載到本地,而一個團隊中的所有人都重復的從maven倉庫下載構件無疑加大了倉庫的負載和浪費了外網帶寬,如果網速慢的話,還會影響項目的進程。

  2. 一定范圍內共享資源,僅對內部開放,不對外共享。很多情況下項目的開發都是再內網進行的,可能根本連接不了maven的中央倉庫和第三方的maven倉庫。

  3. 加速maven構建

  4. 部署第三方構件

  5. 提高穩定性、增強控制

  6. 降低中央倉庫的負載

16.3、Nexus

16.3.1、簡介

Nexus 是一個專門的 maven 倉庫管理軟件,它不僅能夠搭建 maven 私服,還具有如下一些優點使其日趨成為最流行的 maven 倉庫管理器。

  • 提供了強大的倉庫管理功能,構件搜索功能

  • 它基於 REST,友好的 UI 是一個 ext.js 的 REST 客戶端

  • 它占用較少的內存

  • 基於簡單文件系統而非數據庫

16.3.2、下載安裝運行

  1. 使用docker安裝nexus3。
docker search nexus
docker pull sonatype/nexus3

img

  1. 創建docker-compose.yml文件
cat /usr/local/docker/nexus/docker-compose.yml
version: '3'
services:
  nexus:
    restart: always
    image: sonatype/nexus3
    container_name: nexus3
    ports:
      - 8081:8081
    volumes:
      - /usr/local/docker/nexus/nexus-data:/nexus-data

:wq保存退出。

img

  1. 運行nexus3,如果訪問不成功,則需要給nexus-data文件夾賦權限chmod 777 nexus-data/
# 使用docker-compose啟動
docker-compose up -d 
# 使用docker-compose停止
docker-compose down

img

img

img

需要查看nexus-data文件夾下的admin.password文件,里面記錄了密碼。

cat admin.password

img

登錄之后會出現彈窗界面需要你修改密碼。

img

16.3.3、配置本地倉庫訪問私服的權限

在maven安裝目錄下的settings.xml配置文件中的servers中添加serve節點,因為私服不是誰都可以使用,所以需要配置用戶名和密碼。

<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>

16.3.4、配置當前項目訪問私服上傳資源的保存位置

<distributionManagement>
  <repository>
    <id>nexus-releases</id>
    <name>Nexus Release Repository</name>
    <url>http://120.78.177.161:8081/repository/maven-releases/</url>
  </repository>
  <snapshotRepository>
    <id>nexus-snapshots</id>
    <name>Nexus Snapshot Repository</name>
    <url>http://120.78.177.161:8081/repository/maven-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

發布資源到私服命令

mvn deploy

注意:id名稱需要與settings.xml配置文件中server節點配置的id保持一致。

img

可以看到項目快照版本已經上傳到私服。

16.3.5、設置代理倉庫(用於下載資源)

在測試的時候,先將本地倉庫的依賴先刪除掉,迫使項目去私服中下載。

<!-- 私服倉庫配置:從私服下載-->
<repositories>
  <repository>
    <id>nexus</id>
    <name>Nexus Repository</name>
    <url>http://120.78.177.161:8081/repository/maven-public/</url>
    <releases>
      <enabled>true</enabled>
    </releases>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
  </repository>
</repositories>
<pluginRepositories>
  <pluginRepository>
    <id>nexus</id>
    <name>Nexus Plugin Repository</name>
    <url>http://120.78.177.161:8081/repository/maven-public/</url>
    <releases>
      <enabled>true</enabled>
    </releases>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
  </pluginRepository>
</pluginRepositories>

如果沒有開啟匿名訪問,在下載資源的時候會報沒有權限下載。

img

開啟匿名訪問

img

idea配置maven總是更新快照。

img

依賴下載成功

img

16.3.6、上傳第三方jar包

打開cmd,先跳轉到第三方jar包資源目錄,然后執行如下mvn命令即可:

mvn deploy:deploy-file -DgroupId=com.alibaba -DartifactId=fastjson -Dversion=1.2.28 -Dpackaging=jar -Dfile=fastjson-1.2.28.jar -Durl=http://120.78.177.161:8081/repository/maven-releases/ -DrepositoryId=nexus-releases

img

查看nexus-releases倉庫,發現有我們上傳的第三方jar包。

img

至此,大功告成!!!先告一段落,❀❀❀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM