<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Maven簡(jiǎn)介

      Maven的本質(zhì)是一個(gè)項(xiàng)目管理工具,將項(xiàng)目開(kāi)發(fā)和管理過(guò)程抽象成一個(gè)項(xiàng)目對(duì)象模型(POM:Project Object Model)

      這玩意兒是使用Java開(kāi)發(fā)的,所以采用的就是Java的思想:面向?qū)ο?/p> 截屏2021-07-17 下午6.51.07

      Maven的作用:

      1. 項(xiàng)目構(gòu)建:提供標(biāo)準(zhǔn)的、跨平臺(tái)的自動(dòng)化項(xiàng)目構(gòu)建方式
      2. 依賴管理:方便快捷的管理項(xiàng)目依賴的資源(jar包),避免資源間的版本沖突問(wèn)題
      3. 統(tǒng)一開(kāi)發(fā)結(jié)構(gòu):提供標(biāo)準(zhǔn)的、統(tǒng)一的項(xiàng)目結(jié)構(gòu)

      下載與安裝:

      Maven基礎(chǔ)概念

      image-20240621211654330

      倉(cāng)庫(kù):用于存儲(chǔ)資源,包含各種jar包

      倉(cāng)庫(kù)分類:本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)(私服和中央倉(cāng)庫(kù))

      坐標(biāo):Maven中的坐標(biāo)用于描述倉(cāng)庫(kù)中資源的位置

      坐標(biāo)的主要組成:

      • groupId:定義當(dāng)前Maven項(xiàng)目隸屬組織名稱(通常是域名反寫(xiě))
      • artifactId:定義當(dāng)前Maven項(xiàng)目名稱(通常是模塊名稱)
      • version:定義當(dāng)前版本號(hào)
      • packaging:定義該項(xiàng)目的打包方式

      坐標(biāo)的作用:使用唯一的標(biāo)識(shí),唯一性定位資源位置,通過(guò)該標(biāo)識(shí)可以將資源的識(shí)別與下載交由機(jī)器完成。

      倉(cāng)庫(kù)配置:

      • 本地倉(cāng)庫(kù)配置:默認(rèn)位置與自定義位置
      • 遠(yuǎn)程倉(cāng)庫(kù)配置:
      <repositories> 
          <repository>
          <id>central</id>
          <name>Central Repository</name>
          <url>https://maven.aliyun.com/repository/central</url>
          <layout>default</layout>
          <snapshots>
              <enabled>false</enabled>
          </snapshots>
          </repository>
      </repositories>
      

      鏡像倉(cāng)庫(kù)配置:阿里云Maven鏡像倉(cāng)庫(kù)配置地址

      <mirrors>
          <mirror>
          <!-- 此鏡像的唯一標(biāo)識(shí)符,用來(lái)區(qū)分不同的mirror元素 -->
      	<id>nexus-aliyun</id>
          <!-- 對(duì)那種倉(cāng)庫(kù)進(jìn)行鏡像(就是替代哪種倉(cāng)庫(kù))-->
      	<mirrorOf>central</mirrorOf>
          <!-- 鏡像名稱 -->
      	<name>Nexus aliyun</name>
          <!-- 鏡像URL -->
      	<url>https://maven.aliyun.com/repository/public</url>
          </mirror> 
      </mirrors>
      

      全局setting和用戶setting

      • 定義當(dāng)前計(jì)算機(jī)中Maven的公共配置,即 mavne安裝目錄/conf/setting.xml
      • 定義當(dāng)前用戶配置,即 配置的本地倉(cāng)庫(kù)地址處有個(gè)平級(jí)的setting.xml

      注:用戶setting和全局setting不一致時(shí),會(huì)優(yōu)先采用用戶setting.xml的配置,因此最好是這二者內(nèi)容保持一致

      Maven項(xiàng)目

      手動(dòng)生成Maven項(xiàng)目

      Maven工程目錄結(jié)構(gòu)

      截屏2021-07-17 下午6.50.36

      Maven項(xiàng)目構(gòu)建命令:Maven構(gòu)建命令使用mvn開(kāi)頭,后面加功能參數(shù),可以一次執(zhí)行多個(gè)命令,使用空格分隔

      mvn compile 	# 編譯
      mvn clean	 	# 清理
      mvn test 		# 測(cè)試
      mvn package		# 打包
      mvn install 	# 安裝到本地倉(cāng)庫(kù)
      

      IDEA生成Maven項(xiàng)目

      使用原型創(chuàng)建Maven項(xiàng)目與不使用原型創(chuàng)建Maven項(xiàng)目

      例:使用原型創(chuàng)建web項(xiàng)目,選擇archetype-webapp進(jìn)行項(xiàng)目創(chuàng)建,添加Tomcat插件

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

      依賴管理

      1. 依賴配置:依賴指的是當(dāng)前項(xiàng)目運(yùn)行所需要的jar,一個(gè)項(xiàng)目可以設(shè)置多個(gè)依賴。格式:

        <!--設(shè)置當(dāng)前項(xiàng)目所依賴的所有jar-->
        <dependencies>
          <!--設(shè)置具體的依賴-->
          <dependency>
            <!--依賴所屬群組id-->
            <groupId></groupId>
            <!--依賴所屬項(xiàng)目id-->
            <artifactId></artifactId>
            <!--依賴版本號(hào)-->
            <version></version>
            <!--
        		<type>pom</type>
        		<scope>import</scope>
        		只能用在 <dependencyManagement></dependencyManagement> 中
        	-->
            <!--類型:jar 則導(dǎo)入jar包	pom 導(dǎo)入的是一個(gè)父模塊-->
            <type></type>
            <!--
        		作用域:import 代表把父模塊中的jar包導(dǎo)入進(jìn)來(lái)
        		為import時(shí),dependency不參與依賴傳遞
        				   只是把dependency需要的依賴都取過(guò)來(lái),像個(gè)占位符一樣替換了就行
        	-->
            <scope>import</scope>  
          </dependency>
        </dependencies>
        
      2. 依賴傳遞

      依賴具有傳遞性,包括直接傳遞和間接傳遞

      直接傳遞:在當(dāng)前項(xiàng)目中通過(guò)依賴配置建立的依賴關(guān)系(A使用B,A和B就是直接傳遞)

      間接傳遞:被依賴的資源如果依賴其他資源,當(dāng)前項(xiàng)目間接依賴其他資源(比較拗口,意思是如果A依賴B,而B(niǎo)依賴C,那么A和C之間就是間接傳遞)

      img

      依賴傳遞的沖突問(wèn)題:

      • 路徑優(yōu)先:當(dāng)依賴中出現(xiàn)相同的資源時(shí),層級(jí)越深,優(yōu)先級(jí)越低,層級(jí)越淺,優(yōu)先級(jí)越高
      • 聲明優(yōu)先:當(dāng)資源在相同層級(jí)被依賴時(shí),配置順序靠前的覆蓋配置順序靠后的
      • 特殊優(yōu)先:當(dāng)同級(jí)配置了相同資源的不同版本,后配置的覆蓋先配置的
      1. 可選依賴

      可選依賴指的是對(duì)外隱藏當(dāng)前所依賴的資源

      <dependency>
        <groupId></groupId>
        <artifactId></artifactId>
        <version></version>
        <!--添加下面這一行-->
        <optional>true</optional>
      </dependency>
      
      1. 排除依賴

      排除依賴指主動(dòng)斷開(kāi)依賴的資源,被排除的資源無(wú)需指定版本

      <dependency>
        <groupId></groupId>
        <artifactId></artifactId>
        <version></version>
        <exclusions>
          <exclusion>
            <groupId></groupId>
            <artifactId></artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      
      1. 依賴范圍

      依賴的jar包默認(rèn)情況可以在任何地方使用,可以通過(guò)scope標(biāo)簽設(shè)定其作用范圍

      作用范圍:

      • 主程序范圍有效(main文件夾范圍內(nèi))
      • 測(cè)試程序范圍有效(test文件夾范圍內(nèi))
      • 是否參與打包(package文件夾范圍內(nèi))
      截屏2021-07-17 下午7.10.15

      還有兩個(gè):system、import

      • import:依賴項(xiàng)替換為指定 POM 的 <dependencyManagement>中的該依賴項(xiàng)。僅 <dependencyManagement> 部分中 pom 類型的依賴項(xiàng)支持此范圍
      1. 依賴范圍傳遞性:帶有依賴范圍的資源在傳遞時(shí),作用范圍會(huì)受到影響

      image-20240621212758397

      生命周期與插件

      Maven項(xiàng)目構(gòu)建生命周期描述的是一次構(gòu)建過(guò)程經(jīng)歷了多少個(gè)事件

      image-20240621212937084

      Maven對(duì)項(xiàng)目構(gòu)建的生命周期劃分為3套

      1. clean:清理工作
      2. default:核心工作,例如編譯、測(cè)試、打包、部署等
      3. site:產(chǎn)生報(bào)告,發(fā)布站點(diǎn)等

      clean生命周期:

      • pre-clean:執(zhí)行一些需要在clean之前完成的工作
      • clean:移除所有上一次構(gòu)建生成的文件
      • post-clean:執(zhí)行一些需要在clean之后立刻完成的工作

      default構(gòu)建生命周期:compile ——> test-compile ——> test ——> package ——> install

      • validate(校驗(yàn)) 校驗(yàn)項(xiàng)目是否正確并且所有必要的信息可以完成項(xiàng)目的構(gòu)建過(guò)程

      • initialize(初始化) 初始化構(gòu)建狀態(tài),比如設(shè)置屬性值

      • generate-sources(生成源代碼) 生成包含在編譯階段中的任何源代碼

      • process-sources(處理源代碼) 處理源代碼,比如說(shuō),過(guò)濾任意值

      • generate-resources(生成資源文件) 生成將會(huì)包含在項(xiàng)目包中的資源文件

      • process-resources (處理資源文件) 復(fù)制和處理資源到目標(biāo)目錄,為打包階段最好準(zhǔn)備

      • compile(編譯) 編譯項(xiàng)目的源代碼

      • process-classes(處理類文件) 處理編譯生成的文件,比如說(shuō)對(duì)Java class文件做字節(jié)碼改善優(yōu)化

      • generate-test-sources(生成測(cè)試源代碼) 生成包含在編譯階段中的任何測(cè)試源代碼

      • process-test-sources(處理測(cè)試源代碼) 處理測(cè)試源代碼,比如說(shuō),過(guò)濾任意值

      • generate-test-resources(生成測(cè)試資源文件) 為測(cè)試創(chuàng)建資源文件

      • process-test-resources(處理測(cè)試資源文件) 復(fù)制和處理測(cè)試資源到目標(biāo)目錄

      • test-compile(編譯測(cè)試源碼) 編譯測(cè)試源代碼到測(cè)試目標(biāo)目錄

      • process-test-classes(處理測(cè)試類文件) 處理測(cè)試源碼編譯生成的文件

      • test(測(cè)試) 使用合適的單元測(cè)試框架運(yùn)行測(cè)試(Juint是其中之一)

      • prepare-package(準(zhǔn)備打包) 在實(shí)際打包之前,執(zhí)行任何的必要的操作為打包做準(zhǔn)備

      • package(打包) 將編譯后的代碼打包成可分發(fā)格式的文件,比如JAR、WAR或者EAR文件

      • pre-integration-test(集成測(cè)試前) 在執(zhí)行集成測(cè)試前進(jìn)行必要的動(dòng)作。比如說(shuō),搭建需要的環(huán)境

      • integration-test(集成測(cè)試) 處理和部署項(xiàng)目到可以運(yùn)行集成測(cè)試環(huán)境中

      • post-integration-test(集成測(cè)試后) 在執(zhí)行集成測(cè)試完成后進(jìn)行必要的動(dòng)作。比如說(shuō),清理集成測(cè)試環(huán)境

      • verify (驗(yàn)證) 運(yùn)行任意的檢查來(lái)驗(yàn)證項(xiàng)目包有效且達(dá)到質(zhì)量標(biāo)準(zhǔn)

      • install(安裝) 安裝項(xiàng)目包到本地倉(cāng)庫(kù),這樣項(xiàng)目包可以用作其他本地項(xiàng)目的依賴

      • deploy(部署) 將最終的項(xiàng)目包復(fù)制到遠(yuǎn)程倉(cāng)庫(kù)中與其他開(kāi)發(fā)者和項(xiàng)目共享

      site生命周期:

      • pre-site 執(zhí)行一些需要在生成站點(diǎn)文檔之前完成的工作

      • site 生成項(xiàng)目的站點(diǎn)文檔

      • post-site 執(zhí)行一些需要在生成站點(diǎn)文檔之后完成的工作,并且為部署做準(zhǔn)備

      • site-deploy 將生成的站點(diǎn)文檔部署到特定的服務(wù)器上

      插件:插件與生命周期內(nèi)的階段綁定,在執(zhí)行到對(duì)應(yīng)的生命周期時(shí)執(zhí)行對(duì)應(yīng)的插件功能

      <build>
          <plugins>
              <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-source-plugin</artifactId>
              <version>2.2.1</version>
              <!--執(zhí)行插件-->
              <executions>
                  <!--具體怎么執(zhí)行-->
                  <execution>
                      <!--目標(biāo):執(zhí)行什么-->
                      <goals>
                          <!--執(zhí)行jar-->
                          <goal>jar</goal>
                      </goals>
                      <!--執(zhí)行到那個(gè)生命周期階段時(shí)就要執(zhí)行該插件	對(duì)應(yīng)前面default中的那些值-->
                      <phase>generate-test-resources</phase>
                  </execution>
              </executions>
              </plugin>
          </plugins>
      </build>
      

      <goal>jar</goal>值選項(xiàng):官網(wǎng):Apache Maven Source Plugin

      • source:aggregate aggregrates sources for all modules in an aggregator project.
      • source:jar is used to bundle the main sources of the project into a jar archive——對(duì)main中源代碼打包
      • source:test-jar on the other hand, is used to bundle the test sources of the project into a jar archive——對(duì)測(cè)試代碼打包
      • source:jar-no-fork is similar to jar but does not fork the build lifecycle.
      • source:test-jar-no-fork is similar to test-jar but does not fork the build lifecycle.

      聚合

      作用:聚合用于快速構(gòu)建Maven工程,一次性構(gòu)建多個(gè)項(xiàng)目/模塊

      制作方式:創(chuàng)建一個(gè)空模塊,打包類型定義為pom

      <packaging>pom</packaging>
      

      定義當(dāng)前模塊進(jìn)行構(gòu)建操作時(shí)關(guān)聯(lián)的其他模塊名稱

      <modules>
        <module>模塊地址</module>
        <module>模塊地址</module>
        <module>模塊地址</module>
        <module>模塊地址</module>
      </modules>
      

      注意:參與聚合操作的模塊最終執(zhí)行順序與模塊間的依賴關(guān)系有關(guān),與配置順序無(wú)關(guān)

      繼承

      作用:通過(guò)繼承可以實(shí)現(xiàn)在子工程中沿用父工程中的配置(與Java類似)

      制作方式:在子工程中生命其父工程坐標(biāo)與對(duì)應(yīng)的位置

      <!--定義該工程的父工程-->
      <parent>
        <groupId></groupId>
        <artifactId></artifactId>
        <version></version>
        <!--填寫(xiě)父工程的pom文件-->
        <relativePath>父工程pom文件地址</relativePath>
      </parent>
      

      在父工程中定義依賴管理

      <!--聲明此處進(jìn)行依賴管理-->
      <dependencyManagement>
        <!--具體的依賴-->
        <dependencies>
          <dependency>
            <groupId></groupId>
            <artifactId></artifactId>
            <version></version>
          </dependency>
        </dependencies>
      </dependencyManagement>
      
      
      
      <!--要管理插件的話,使用如下方式-->
      <build>
      	<pluginManagement>
          	<plugins>
              	<plugin>
                      <groupId></groupId>
                      <artifactId></artifactId>
                      <version></version>
                      <!--.....................-->
                  </plugin>
              </plugins>
          </pluginManagement>
      </build>
      

      繼承依賴使用:在子工程中定義依賴關(guān)系,無(wú)需聲明依賴版本,版本參照父工程中依賴的版本

      <!--子工程使用依賴-->
      <dependencies>
        <dependency>
          <groupId></groupId>
          <artifactId></artifactId>
        </dependency>
      </dependencies>
      
      
      <!--子工程使用插件-->
      <build>
          <plugins>
              <plugin>
                  <groupId></groupId>
                  <artifactId></artifactId>
                  <!--<version></version>-->
              </plugin>
          </plugins>
      </build>
      

      繼承的資源:

      image-20240622012647178

      繼承與聚合的區(qū)別

      作用:聚合用于快速構(gòu)建項(xiàng)目,繼承用于快速配置

      相同點(diǎn):

      • 聚合與繼承的pom.xml文件打包方式均為pom,可以將兩種關(guān)系制作到同一個(gè)pom文件中

      • 聚合與繼承均屬于設(shè)計(jì)型模塊,并無(wú)實(shí)際的模塊內(nèi)容

      不同點(diǎn):

      • 聚合是在當(dāng)前模塊中配置關(guān)系,聚合可以感知到參與聚合的模塊有哪些

      • 繼承是在子模塊中配置關(guān)系,父模塊無(wú)法感知哪些子模塊繼承了自己

      屬性

      1. 自定義屬性

      作用:等同于定義變量,方便統(tǒng)一維護(hù)

      定義格式:

      <!--定義自定義屬性-->
      <properties> 
          <spring.version>5.1.9.RELEASE</spring.version>
          <junit.version>4.12</junit.version>
      </properties>
      

      調(diào)用格式:

      <dependency> 
          <groupId>org.springframework</groupId> 
          <artifactId>spring-context</artifactId> 
          <version>${spring.version}</version>
      </dependency>
      
      1. 內(nèi)置屬性

      作用:使用Maven內(nèi)置屬性,快速配置

      調(diào)用格式:

      ${basedir}
      ${version}
      
      1. Setting屬性

      作用:使用Maven配置文件setting.xml中的標(biāo)簽屬性,用于動(dòng)態(tài)配置

      調(diào)用格式:

      ${settings.localRepository}
      
      1. Java系統(tǒng)屬性

      作用:讀取Java系統(tǒng)屬性

      調(diào)用格式:

      ${user.home}
      

      系統(tǒng)屬性查詢方式:

      mvn help:system
      
      1. 環(huán)境變量屬性

      作用:使用Maven配置文件setting.xml中的標(biāo)簽屬性,用于動(dòng)態(tài)配置

      調(diào)用格式:

      ${env.JAVA_HOME}
      

      環(huán)境變量屬性查詢方式:

      mvn help:system
      

      版本管理

      SNAPSHOT(快照版本):

      • 項(xiàng)目開(kāi)發(fā)過(guò)程中,方便團(tuán)隊(duì)成員合作,解決模塊間相互依賴和實(shí)時(shí)更新的問(wèn)題,開(kāi)發(fā)者對(duì)每個(gè)模塊進(jìn)行構(gòu)建的時(shí)候,輸出的臨時(shí)性版本就叫快照版本(測(cè)試階段版本)
      • 快照版本會(huì)隨著開(kāi)發(fā)的進(jìn)展不斷更新

      RELEASE(發(fā)布版本):

      • 項(xiàng)目開(kāi)發(fā)到進(jìn)入階段里程碑后,向團(tuán)隊(duì)外部發(fā)布較為穩(wěn)定的版本,這種版本所對(duì)應(yīng)的構(gòu)建文件是穩(wěn)定的,即便進(jìn)行功能的后續(xù)開(kāi)發(fā),也不會(huì)改變當(dāng)前發(fā)布版本的內(nèi)容,這種版本就叫發(fā)布版本

      工程版本號(hào)約定:

      截屏2021-07-17 下午8.24.46

      資源配置

      配置文件引用pom屬性

      作用:在任意配置文件中加載pom文件中定義的屬性

      1. pom中定義變量:
      <properties>
      	<jdbc.username>root</jdbc.username>
          <jdbc.password>zixieqing072413</jdbc.password>
      </properties>
      
      1. pom中開(kāi)啟配置文件加載pom屬性
      <build>
          <!--配置資源文件對(duì)應(yīng)的信息-->
          <resources>
              <resource>
                  <!--設(shè)定配置文件對(duì)應(yīng)的位置目錄 如 application.yml
      			   支持使用屬性動(dòng)態(tài)設(shè)定路徑	如 ${project.basedir}-->
                  <directory>地址</directory>
                  <!--開(kāi)啟對(duì)配置文件的資源加載過(guò)濾-->
                  <filtering>true</filtering>
              </resource>
          </resources>
          
          
          <!--test配置文件也需要使用時(shí):配置資源文件對(duì)應(yīng)的信息-->
          <testResources>
          	<testResource>
                  <!--設(shè)定配置文件對(duì)應(yīng)的位置目錄 如 application.yml
      			   支持使用屬性動(dòng)態(tài)設(shè)定路徑	如 ${project.basedir}-->
                  <directory>地址</directory>
                  <!--開(kāi)啟對(duì)配置文件的資源加載過(guò)濾-->
                  <filtering>true</filtering>
              </testResource>
          </testResources>
      </build>
      
      1. 在需要使用變量得到配置文件中使用,調(diào)用格式:
      ${地址}
      
      
      <!--示例-->
      ${jdbc.username}
      

      多環(huán)境開(kāi)發(fā)配置

      <!--創(chuàng)建多環(huán)境-->
      <profiles>
          <!--定義具體的環(huán)境:生產(chǎn)環(huán)境-->
          <profile>
              <!--定義環(huán)境對(duì)應(yīng)的唯一名稱	如 prod_env-->
              <id>開(kāi)發(fā)環(huán)境名稱1</id>
              <!--定義環(huán)境中的專用的屬性值-->
              <properties>
                  <jdbc.url>jdbc鏈接</jdbc.url>
              </properties>
              <!--將該套環(huán)境設(shè)為默認(rèn)啟動(dòng)環(huán)境-->
              <activation>
                  <activeByDefault>true</activeByDefault>
              </activation>
          </profile>
      
          <!--定義具體的環(huán)境:開(kāi)發(fā)環(huán)境	格式同上-->
      </profiles>
      

      Maven使用命令啟動(dòng)那套環(huán)境:

      mvn 指令 -p 環(huán)境定義id
      
      # 示例
      mvn install -p prod_env
      

      跳過(guò)測(cè)試

      提示

      正式開(kāi)發(fā)時(shí),不建議跳過(guò)

      跳過(guò)測(cè)試的場(chǎng)景:

      • 整體模塊功能未開(kāi)發(fā)
      • 模塊中某個(gè)功能未開(kāi)發(fā)完畢
      • 單個(gè)功能更新調(diào)試導(dǎo)致其他功能失敗
      • 快速打包
      • .........................

      使用方式:

      1. 命令的方式
      mvn 指令 –D skipTests
      
      # 示例
      mvn install –D skipTests
      

      注意

      執(zhí)行的指令生命周期必須包含測(cè)試環(huán)節(jié)

      1. 使用IDEA界面操作

      image-20240622024041847

      1. 使用pom配置
      <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
          <configuration>
              <!-- 設(shè)置跳過(guò)測(cè)試 -->
              <skipTests>true</skipTests>
              <!-- 包含指定的測(cè)試用例 -->
              <includes>
                  <include>**/User*Test.java</include>
              </includes>
              <!-- 排除指定得到測(cè)試用例 -->
              <excludes>
                  <exclude>**/User*TestCase.java</exclude>
              </excludes>
          </configuration>
      </plugin>
      

      私服

      使用Nexus,是sonatype的產(chǎn)品:

      啟動(dòng)服務(wù)器(Windows):

      nexus.exe /run nexus
      

      訪問(wèn)服務(wù)器:默認(rèn)端口8081,可在其配置文件中修改

      http://localhost:8081
      

      修改基礎(chǔ)配置信息:安裝路徑/etc/nexus-default.properties,如默認(rèn)端口號(hào)

      修改服務(wù)器運(yùn)行配置:安裝路徑/bin/nexus.vmoptions,如默認(rèn)內(nèi)存空間大小

      IDEA中資源上傳和下載

      私服倉(cāng)庫(kù)分類:

      宿主倉(cāng)庫(kù)(hosted):保存無(wú)法從中央倉(cāng)庫(kù)獲取的資源,如

      • 自主研發(fā)
      • 第三方非開(kāi)源項(xiàng)目

      代理倉(cāng)庫(kù)(proxy):代理遠(yuǎn)程倉(cāng)庫(kù),通過(guò)Nexus訪問(wèn)其他公共倉(cāng)庫(kù)

      倉(cāng)庫(kù)組(group):

      • 將若干倉(cāng)庫(kù)組成一個(gè)群組,簡(jiǎn)化配置
      • 倉(cāng)庫(kù)組不保存資源,屬于設(shè)計(jì)型倉(cāng)庫(kù)

      image-20240622154257305

      私服用戶名密碼:配置在本地倉(cāng)庫(kù)的setting.xml中即可

      上傳位置:配置在IDEA中,上傳到私服中的倉(cāng)庫(kù)組不同

      下載地址:配置在本地倉(cāng)庫(kù)的setting.xml即可

      訪問(wèn)私服配置

      1. 配置本地倉(cāng)庫(kù)訪問(wèn)私服權(quán)限(setting.xml)
      <servers>
          <server>
              <!--放release版本的	和nexus中命名保持一致-->
              <id>zixq-release</id>
              <!--訪問(wèn)私服的用戶名密碼-->
              <username>admin</username>
              <password>admin</password>
          </server>
          <server>
              <!--放snapshots版本的-->
              <id>zixq-snapshots</id>
              <username>admin</username>
              <password>admin</password>
          </server>
      </servers>
      
      1. 配置本地倉(cāng)庫(kù)來(lái)源(setting.xml)
      <!--可以和阿里云倉(cāng)庫(kù)同時(shí)存在-->
      
      <mirrors>
          <mirror>
          <id>nexus-zixq</id>
          <mirrorOf>*</mirrorOf>
      	<url>http://localhost:8081/repository/maven-public/</url>
          </mirror>
      </mirrors>
      

      IDEA發(fā)布依賴到私服配置

      1. 配置當(dāng)前項(xiàng)目訪問(wèn)私服上傳資源的保存位置(pom.xml)
      <distributionManagement>
          <repository>
              <!--倉(cāng)庫(kù)id,和上面本地倉(cāng)庫(kù)setting.xml中server id保持一致-->
              <id>zixq-release</id>
              <!--放release版?zhèn)}庫(kù)的url-->
              <url>http://localhost:8081/repository/zixq-release/</url>
          </repository>
          <snapshotRepository>
              <id>zixq-snapshots</id>
              <url>http://localhost:8081/repository/zixq-snapshots/</url>
          </snapshotRepository>
      </distributionManagement>
      
      1. 發(fā)布資源到私服的命令
      mvn deploy
      

      流程:通過(guò)IDEA pom中配置的<url>http://localhost:8081/repository/zixq-release/</url>訪問(wèn)私服,通過(guò)<id>zixq-release</id>去本地倉(cāng)庫(kù)的setting.xml 的server id找訪問(wèn)私服的username、password,然后進(jìn)行發(fā)布

      IDEA插件之Maven Helper

      Maven Helper可以解決依賴問(wèn)題,安裝了Maven Helper插件,只要打開(kāi)pom文件,就可以打開(kāi)該pom文件的Dependency Analyzer視圖,并且這個(gè)頁(yè)面還支持搜索。很方便

      進(jìn)入Dependency Analyzer視圖之后有三個(gè)查看選項(xiàng),分別是:

      • Conflicts:沖突
      • All Dependencies as List:列表形式查看所有依賴
      • All Dependencies as Tree:樹(shù)結(jié)構(gòu)查看所有依賴

      image-20240622161654202

      image-20240622161913548

      jar包沖突說(shuō)明

      解決IDEA中jar包沖突,使用maven的插件:maven helper插件,它能夠給我們羅列出來(lái)同一個(gè)jar包的不同版本,以及它們的來(lái)源,但是對(duì)不同jar包中同名的類沒(méi)有辦法

      依賴順序

      點(diǎn)擊【All Dependencies as Tree】,查看:從上向下,A依賴于B,B依賴于C

      image-20240622162333722

      .點(diǎn)擊【Conflicts】,從圖中可以看出有哪些jar存在沖突,存在沖突的情況下最終采用了哪個(gè)依賴的版本。標(biāo)紅的就是沖突版本,白色的是當(dāng)前的解析版本。這個(gè)選項(xiàng),需要從下向上看

      image-20240622162927630

      解決思路

      1. 排除指定的版本:如果有兩個(gè)依賴的版本發(fā)生了沖突,那么只要用exclusion關(guān)鍵字把其中一個(gè)依賴給排除掉,只剩下一個(gè)依賴即可

      image-20240622163156783

      1. 子工程指定版本號(hào)

      2. 子工程先排除,再指定版本號(hào):如下圖,在starter-web中排除spring-webmvc,然后指定spring-webmvc的版本為6.0.9

      image-20240622163357642

      1. 鎖定版本:使用dependencyManagement統(tǒng)一對(duì)依賴的版本進(jìn)行定義

      2. 路徑優(yōu)先:當(dāng)依賴中出現(xiàn)相同的資源時(shí),層級(jí)越深,優(yōu)先級(jí)越低,層級(jí)越淺,優(yōu)先級(jí)越高。實(shí)際使用就是直接在pom中顯示使用且定義版本

      3. 聲明優(yōu)先:當(dāng)資源在相同層級(jí)被依賴時(shí),配置順序靠前的覆蓋配置順序靠后的

      4. 特殊優(yōu)先:當(dāng)同級(jí)配置了相同資源的不同版本,后配置的覆蓋先配置的

      對(duì)應(yīng)MD文檔

      鏈接:Maven 筆記

      posted on 2024-07-07 15:33  紫邪情  閱讀(415)  評(píng)論(1)    收藏  舉報(bào)



      主站蜘蛛池模板: 唐山市| 峨山| 亚洲老妇女一区二区三区| 亚洲人妻精品一区二区| 动漫AV纯肉无码AV电影网| 免费现黄频在线观看国产| 国产很色很黄很大爽的视频| 亚洲中文字字幕精品乱码| 亚洲成人动漫在线| 真实国产乱子伦视频| 亚洲高清有码在线观看| 柳林县| 图片区 小说区 区 亚洲五月| 福利视频一区二区在线| 欧美18videosex性欧美tube1080| 久久精品一区二区东京热| 中国老熟女重囗味hdxx| 天天摸夜夜摸夜夜狠狠添| 久久精品国产99国产精品澳门| 欧美性xxxxx极品少妇| 中文字幕日韩人妻一区| 国产麻豆成人传媒免费观看| 狠狠色狠狠色综合日日不卡| 欧美交a欧美精品喷水| 777米奇色狠狠888俺也去乱| 精品少妇人妻av无码专区| 中文丰满岳乱妇在线观看| 亚洲精品国产一区二区三区在线观看| 精品无码三级在线观看视频| 国产精品亚洲一区二区在| 亚洲高清WWW色好看美女| 深夜福利啪啪片| 亚洲gv天堂无码男同在线观看| 亚洲不卡一区二区在线看| 自拍亚洲一区欧美另类| 亚洲a∨无码无在线观看| 99精品久久免费精品久久| 饥渴少妇高潮正在播放| 最新午夜男女福利片视频 | 激情综合网五月婷婷| 欧美老熟妇乱子伦牲交视频|