亚洲精品中文字幕无码专区一,中文字幕av一区乱码深夜动态福利,粗大的内捧猛烈进出少妇

          系統城裝機大師 - 唯一官網:www.snowmanhill.com!

          當前位置:首頁 > 數據庫 > Mysql > 詳細頁面

          部署Maven與Nexus(私服)

          時間:2020-02-20來源:系統城作者:電腦系統城

          博文大綱:
          一、Maven簡介
          1)Maven的功能:
          2)Maven使用場景(從運維人員的角度來看):
          3)Maven倉庫
          二、部署Maven
          1)配置jdk環境
          2)部署Maven
          三、部署Nexus私服
          1)Nexus簡介
          2)部署Nexus
          四、Maven配置nexus私服,將遠程倉庫設置成本地搭建的Nexus私服
          1)修改maven的主配置文件
          2)創建一個maven項目進行測試
          3)配置認證,將打包好的項目上傳到nexus中
          4)上傳到maven-release倉庫
          5)上傳第三方maven

          一、Maven簡介

          Maven是屬于apache軟件基金會下一個開源免費的項目,是跨平臺的項目管理工具, Maven采用了一種被稱之為Project Object Model (POM)概念來管理項目,所有的項目配置信息都被定義在一個叫做POM.xml的文件中。主要服務于基于Java平臺的項目構建,依賴管理和項目信息管理,可以在代碼進行部署的過程中自動解決項目中代碼的依賴環境,需要從maven的鏡像倉庫中進行下載依賴環境,通常下載比較慢,企業中會在公司內部搭建nexus(私服),將構建項目中的依賴環境保存到nexus服務器中,提高訪問速度。

          POM項目對象模型,是Maven工程的基本工作單元,是一個XML文件,包含了項目的基本信息,用于描述項目如何構建,聲明項目依賴等等。
          執行任務或目標時,Maven會在當前目錄中查找POM。讀取POM,獲取所需的配置信息,然后執行目標。

          POM中可以指定以下配置:項目依賴、插件、執行目標、項目構建profile、項目版本、項目開發列表、相關郵件列表信息。

          1)Maven的功能:

          1)1. mavne模型的Java項目對源代碼、單元測試代碼、資源、jar包等有規范和目錄規劃;
          2)2. 解決項目間的依賴關系、版本不一致、版本沖突問題;
          3)3. 合理的jar管理機制;

          2)Maven使用場景(從運維人員的角度來看):

          1)原來項目中的jar包必須手動復制、粘貼到WEB-INF/lib項目下,而借助maven,可以將jar包僅僅保存在倉庫中,有需要使用的工程只需要引用這個文件,并不需要重復復制到工程中;
          2)原來的項目中所需要的jar包都是提前下載好的,而maven在聯網狀態下會自動下載所需要的jar包。首先在本地倉庫中找,找不到就在網上進行下載;
          3)原來的項目中一個jar包所依賴的其他jar包必須手動導進來,而maven會自動將被依賴的jar包導進來;
          4)原來的項目一個項目就是一個工程,而借助maven可以將一個項目拆分成多個工程;

          項目構建過程包括:【清理項目】→【編譯項目】→【測試項目】→【生成測試報告】→【打包項目】→【部署項目】這幾個步驟,這六個步驟就是一個項目的完整構建過程。

          3)Maven倉庫

          在Maven的專業術語中,倉庫是指一個位置,Maven倉庫是項目中依賴的第三方庫,這個庫所在的位置叫做倉庫。在Maven中,任何一個依賴、插件或者項目構建的輸出,都可以稱之為構件。

          Maven倉庫能幫助我們管理構件(主要是Jar),它就是放置所有JAR文件(WAR、ZIP、POM等等)的地方。

          Maven倉庫有三種類型:本地、中央、遠程。

          1)本地倉庫

          Maven 的本地倉庫,在安裝 Maven 后并不會創建,它是在第一次執行 maven 命令的時候才被創建。

          運行 Maven 的時候,Maven 所需要的任何構件都是直接從本地倉庫獲取的。如果本地倉庫沒有,它會首先嘗試從遠程倉庫下載構件至本地倉庫,然后再使用本地倉庫的構件。

          默認情況下,不管Linux還是 Windows,每個用戶在自己的用戶目錄下都有一個路徑名為 .m2/respository/ 的倉庫目錄。

          2)中央倉庫

          Maven中央倉庫是由Maven社區提供的倉庫,其中包含了大量常用的庫。

          maven內置了遠程公用倉庫:http://repo1.maven.org/maven2 。

          中央倉庫包含了絕大多數流行的開源Java構件,以及源碼、作者信息、SCM、信息、許可證信息等。一般來說,簡單的Java項目依賴的構件都可以在這里下載到。

          3)第三方倉庫

          第三方倉庫又稱為內部中心倉庫,也稱為私服。

          私服:一般是由公司自己設立的,只為公司內部共享使用。它既可以作為公司內部構件協作和存檔,也可以作為公用類庫鏡像緩存,減少在外部訪問和下載的頻率(使用了私服就減少了對中央倉庫的訪問)。

          如需了解更多,可以移步這篇文檔:Maven教程

          二、部署Maven

          安裝Maven需依賴java環境,所以應實現部署jdk環境!

          注:該博文用到的所有源碼包都可以從我提供的網盤鏈接中下載

          1)配置jdk環境

          [root@maven ~]#  rpm -qa | grep jdk             //查詢本機默認JDK環境
          java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
          copy-jdk-configs-3.3-2.el7.noarch
          java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
          java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
          java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64
          [root@maven ~]# yum -y remove java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
          [root@maven ~]# yum -y remove java-1.8.0-openjdk-headless-1.8.0.161-2.b14.el7.x86_64
          //將原本的jdk-headless包卸載
          [root@maven ~]# tar zxf jdk-8u211-linux-x64.tar.gz -C /usr/local                //將提供的JDK軟件包進行解壓
          [root@maven ~]# vim /etc/profile                //編寫系統環境變量,在末尾添加以下內容
                  export JAVA_HOME=/usr/local/jdk1.8.0_211                     //指定Java安裝路徑
                  export JRE_HOME=/usr/local/jdk1.8.0_211/jre                  //Java運行環境
                  export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar              //聲明Java中的類,類就是一類事務的屬性
                  export PATH=$JAVA_HOME/bin/:$JRE_HOME/bin/:$PATH             //將定義的變量添加到系統環境變量中
          [root@maven ~]# source /etc/profile                    //重新加載系統環境變量文件
          [root@maven ~]#java -version                           //查詢支持的Java版本信息
          java version "1.8.0_211"                              //符合要求
          Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
          Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

          2)部署Maven

          [root@maven ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
          #可直接使用網盤中的apache-maven-3.6.1-bin.tar.gz
          [root@maven ~]# tar zxf apache-maven-3.6.3-bin.tar.gz -C /usr/src
          [root@maven ~]# mv /usr/src/apache-maven-3.6.3/ /usr/local/maven
          [root@maven ~]# vim /etc/profile           #添加以下內容
          export MAVEN_HOME=/usr/local/maven
          export PATH=$PATH:$MAVEN_HOME/bin
          [root@maven ~]# source /etc/profile
          [root@maven ~]# mvn -v        #出現下面內容就部署成功了(因為這是二進制的方式部署)
          Apache Maven 3.6.3 (cecedd343002696d0abb0b32b541b8a6ba2883f)
          Maven home: /usr/local/maven
          Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_211/jre
          Default locale: zh_CN, platform encoding: UTF-8
          OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

          1)配置使用阿里云倉庫地址

          由于使用maven官網的地址。下載較慢,所以直接更改為阿里云提供的maven倉庫地址!

          [root@maven ~]# vim /usr/local/maven/conf/settings.xml
          #定位到158行,填寫一下內容
              <mirror>
                <id>aliyun</id>
                <mirrorOf>central</mirrorOf>
                      <name>aliyun maven</name>
                <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
              </mirror>
            </mirrors>          #必須寫在這個標簽里面
          #mirror就是鏡像,主要提供一個方便地切換遠程倉庫地址的途徑
          #<mirrorOf>central</mirrorOf>里是要替代的倉庫的id。代理原有倉庫,如果填寫*表示替換所有倉庫   

          2)構建項目進行測試

          [root@maven ~]# mkdir /tmp/testdir
          [root@maven ~]# cd /tmp/testdir/
          #執行下面命令進行測試
          [root@maven testdir]# mvn archetype:generate -DgroupId=com.lzj.maven.quickstart -DartifactIdk=testapp -DarchetypeArtifactId=maven-archetype-quickstart
          #創建一個maven項目(Java類型),可加-DinteractiveMode=false取消交互過程
                               ...........................#省略部分內容
          Define value for property 'artifactId': testapp      #需手動指定項目名稱,可自定義,接下來保持默認即可!
          [INFO] BUILD SUCCESS        #當出現這行提示信息,則表示構建成功
          #上述命令解釋如下:
          # archetype:generate:創建一個簡單的java項目;
          # archetype 也就是原型,是一個 Maven 插件,準確說是一個項目模板,它的任務是根據模板創建一個項目結構。
          #使用 quickstart 原型插件創建一個簡單的 java 應用程序
          # -DgroupId:組織名,公司網址的反寫(反向域名)+項目名稱;
          # -DartifactIdk:項目名或者模塊名;
          # - DarchetypeArtifactId:指定 ArchetypeId,maven-archetype-quickstart,創建一個簡單的 Java 應用;
          # -DinteractiveMode: 是否使用交互模式。

          3)生成的POM文件參數解釋

          當前目錄生成的內容:

          [root@maven testdir]# ls   #上述命令執行成功后,會在當前目錄下生成以項目名稱命名的目錄
          testapp
          [root@maven testdir]# cd testapp/      #進入生成的目錄
          [root@maven testapp]# ls                #查看目錄下生成的文件
          pom.xml  src
          [root@maven testapp]# cat pom.xml         #pom文件參數解釋
          project: 根,這是對Project添加一些根元素的約束信息
          modelversion:指定當前maven模型的版本號
          grouopId:應該是公司名或者組織名。一般來說groupID有三個部分組成,每個部分之間以“.”分隔,第一部分是項目的用途,比如用于商業的就是com,用于非商業盈利性組織的就是org,第二部分是公司名,比如tentxun/baidu/alibaba,第三部分是你的項目名
          artifactId:可以認為是maven構建的項目名,比如你的項目中有子項目,就可以使用“項目名-子項目的命名方式
          packaging: 指定生成的格式(jar/war/rar/pom/ear)
          version:版本號,SNAPSHOT意味快照,說明該項目還在開發中,是不穩定的版本
          name:項目的名稱, Maven產生的文檔用
          url:項目主頁的url,Maven產生的文檔用
          dependencies標簽:指定開發構建(jar包)
          JUnit是一個Java語言的單元測試框架

          用戶宿主目錄下也會生成本地倉庫:

          [root@Maven testdir]# ls ~/.m2/repository/
          antlr  asm  commons-codec  commons-collections  commons-io  commons-lang  jdom  net  org

          4)Maven配置文件

          Maven 的配置文件名稱為:setting.xml。它被存放在兩個地方:
          1)/usr/local/maven/conf/settings.xml #安裝的目錄;
          2)~/.m2/settings.xml #用戶的家目錄;

          其中,安裝目錄配置又是全局配置,用戶目錄配置被稱為用戶配置。如果兩者都存在,他們的內容將被合并,并且用戶范圍的settings.xml優先。

          默認用戶目錄不存在配置文件,可以copy maven安裝目錄下的settings.xml到用戶目錄。

          關于settings.xml文件常用的的配置修改如下:
          1)修改本地倉庫存儲路徑,默認值是~/.m2/repository 可在settings.xml中的localrepository修改成自己需要的目錄;
          2)如果構建服務器因為網絡故障或者安全問題不能與遠程倉庫相連,需要離線模式下,設置offline屬性,設置為true,默認為false;
          3)修改中央倉庫服務器,修改配置文件中便簽,添加或修改鏡像地址;
          4)設置代理地址,修改配置文件中proxy標簽,定義代理服務器,實現maven的代理。

          由于中央倉庫服務器是國外的,在國內使用的話,下載比較慢,所以建議國內用戶使用阿里云倉庫地址。

          5)Maven常用命令

          [root@maven testapp]# pwd      #確認當前目錄是之前構建的項目下
          /tmp/testdir/testapp
          [root@maven testapp]# mvn compile   #編譯(在編譯的過程中,可以看到使用的是阿里云的倉庫)
          [INFO] BUILD SUCCESS      #只要在輸出信息的最后幾行中看到該行,則表示執行成功
          #以后所有命令都一樣,只要最后幾行有上述信息,就表示執行成功
          [root@maven testapp]# ls    #會看到目錄下會生成新的目錄target
          pom.xml  src  target
          # target:打包輸出目錄,如打包好的jar或war文件;
          # target/classes:編譯輸出目錄;
          [root@maven testapp]# mvn test          #測試命令
          [root@maven testapp]# ls target/test-classes/
          com
          # target/test-classes:測試編譯輸出目錄
          [root@maven testapp]# mvn clean   #清理命令(就是將編譯和測試生成的目錄刪除)
          [root@maven testapp]# ls      # target目錄已經不在了
          pom.xml  src
          [root@maven testapp]# mvn package       #打包命令
          [root@maven testapp]# ls target/     #會生成一個jar包
          classes         surefire-reports
          maven-archiver  testapp-1.0-SNAPSHOT.jar
          maven-status    test-classes
          [root@maven testapp]# mvn install         #安裝命令(作用是將壓縮文件jar包或者war包上傳到本地倉庫)
          [root@maven testapp]# ls ~/.m2/repository/com/lzj/maven/quickstart/testapp/1.0-SNAPSHOT/
          #查看上傳的包
          maven-metadata-local.xml  testapp-1.0-SNAPSHOT.jar
          _remote.repositories      testapp-1.0-SNAPSHOT.pom
          # 直接使用maven install命令對項目進行上傳到本地倉庫,
          # 那么前面所有的步驟將會自動執行,比如源代碼的編譯、打包等等。
          [root@maven testapp]# mvn deploy      #發布(將包上傳到私服,現在我這里還沒有私服,所以會失?。?/code>

          6)mvn命令的生命周期

          maven基于構建生命周期這個中心概念,這意味著構建和分布特定項目的過程被明確定義,具體如下:
          大致的生命周期圖:
          部署Maven與Nexus(私服)
          詳細的生命周期圖:
          部署Maven與Nexus(私服)

          7)構建一個web項目,打出war包,并部署到tomcat

          [root@maven testdir]# mvn archetype:generate -DgroupId=cn.test.testweb -DartifactId=testweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
          #構建web項目
          #生成的目錄結構如下:
          [root@maven testdir]# ls testweb/
          pom.xml  src
          [root@maven testdir]# cat testweb/src/main/webapp/index.jsp 
          <html>
          <body>
          <h2>Hello World!</h2>
          </body>
          </html>
          [root@maven testdir]# cd testweb/   #進入項目目錄下
          [root@maven testweb]# mvn package         #打包為war包
          [root@maven testweb]# ls target/      #將會在該目錄下生成一個war包
          classes  maven-archiver  testweb  testweb.war
          #將生成的war包移動到Tomcat的網頁根目錄(webapps)下,它將自動解壓,
          #然后即可訪問Tomcat測試生成的war包
          [root@maven testweb]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
          [root@maven testweb]# tar zxf apache-tomcat-9.0.31.tar.gz 
          [root@maven testweb]# mv apache-tomcat-9.0.31 /usr/local/tomcat        #安裝tomcat
          [root@maven testweb]# mv target/testweb.war /usr/local/tomcat/webapps/ #移動到Tomcat網頁根目錄
          [root@maven testweb]# /usr/local/tomcat/bin/startup.sh    #啟動Tomcat
          [root@maven testweb]# ls /usr/local/tomcat/webapps/      #查看,war包被自動解壓了
          docs      host-manager  ROOT     testweb.war
          examples  manager       testweb

          客戶端訪問移動到Tomcat網頁根目錄下的war包,如圖:
          部署Maven與Nexus(私服)

          三、部署Nexus私服

          1)Nexus簡介

          Nexus 是Maven倉庫管理器,如果你使用Maven,你可以從Maven中央倉庫 下載所需要的構件(artifact),但這通常不是一個好的做法,你應該在本地架設一個Maven倉庫服務器,在代理遠程倉庫的同時維護本地倉庫,以節省帶寬和時間,Nexus就可以滿足這樣的需要。此外,他還提供了強大的倉庫管理功能,構件搜索功能,它基于REST,友好的UI是一個extjs的REST客戶端,它占用較少的內存,基于簡單文件系統而非數據庫。這些優點使其日趨成為最流行的Maven倉庫管理器。

          Nexus不是Maven的核心概念,它僅僅是一種衍生出來的特殊的Maven倉庫。對于Maven來說,倉庫只有兩種:本地倉庫和遠程倉庫。
          部署Maven與Nexus(私服)

          本地倉庫就是我們在maven的setting.xml中配置的本地倉庫地址。由于最原始的本地倉庫是空的,Maven必須知道至少一個可用的遠程倉庫,才能在執行Maven命令的時候下載到需要的構件。中央倉庫是maven默認的遠程倉庫。

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

          Nexus的功能:
          1)節省外網帶寬。大量對于外部倉庫的重復請求會消耗帶寬,利用私服代理外部倉庫,可以消除對外的重復構件下載,降低帶寬的壓力。
          2)加速Maven構建。加速Maven構建。不停地連接請求外部倉庫十分的耗時,Maven在執行構建的時候不停地檢查遠程倉庫的數據。利用私服,Maven只檢查局域網的數據,提高構建的速度。
          3)部署第三方構件。部署第三方構件。當某個構件無法從任何一個外部遠程倉庫獲得。建立私服之后,便可以將這些構件部署到私服,供內部的Maven項目使用。
          4)提高穩定性,增強控制。提高穩定性,增強控制。Maven構建高度依賴于遠程倉庫,因此,當網絡不穩定的時候,Maven構建也會變得不穩定,甚至無法構建。私服緩存了大量構建,即使暫時沒有網絡,Maven也可以正常的運行。
          5)降低中央倉庫的負荷。降低中央倉庫的負荷。使用私服可以避免很多對中央倉庫的重復下載,降低中央倉庫的壓力。

          2)部署Nexus

          這個軟件從官網下載較慢,可從博文開頭的網盤鏈接中獲??!

          [root@maven ~]# mkdir /usr/local/nexus
          [root@maven ~]# tar zxf nexus-3.17.0-01-unix.tar.gz -C /usr/local/nexus/
          #啟動nexus必須使用nexus用戶,不可以使用權限過高的用戶,比如root,否則會啟動失敗
          [root@maven ~]# useradd nexus
          [root@maven ~]# chown -R nexus:nexus /usr/local/nexus/
          [root@maven ~]# cd /usr/local/nexus/
          [root@maven nexus]# ls
          nexus-3.17.0-01      #這是應用目錄
          sonatype-work       #這是工作目錄,存放鏡像倉庫
          #運行內存和工作目錄nexus-3.17.0-01/bin/nexus.vmoptions (修改對應字段即可)
          #運行監聽地址和端口nexus-3.17.0-01/etc/nexus-default.properties
          [root@maven nexus]# ln -s /usr/local/nexus/nexus-3.17.0-01/bin/nexus /usr/local/bin/
          #創建命令軟連接
          #切換至nexus用戶,并啟動nexus服務,如果使用root用戶,會因為權限過高而啟動失敗
          [root@maven nexus]# su nexus
          [nexus@maven nexus]$ nexus start      #啟動nexus
          Starting nexus
          [root@maven nexus]# netstat -anpt | grep 8081      #默認監聽8081端口
          tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      61881/java 

          啟動成功,瀏覽器進行訪問:
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)

          [root@maven ~]# cat /usr/local/nexus/sonatype-work/nexus3/admin.password
          da8b24ed-8bd2-42c5-864f-858216a21cf4       #復制查看出的密碼信息

          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)

          1)創建角色

          如圖:
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)

          2)創建用戶

          如圖:
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)

          3)查看默認倉庫類型

          如圖:
          部署Maven與Nexus(私服)

          默認的倉庫類型介紹:

          • group(倉庫組類型):又叫組倉庫,用于方便開發人員,自己設定的倉庫
          • hosted(宿主類型):內部項目的發布倉庫(內部開發人員發布上去存放的倉庫);
          • proxy(代理類型):從遠程中央倉庫中尋找數據的倉庫(可以點擊對應的倉庫的Configuration頁簽下Remote Storage Location屬性的值,即被代理的遠程倉庫的路徑);
          • virtual(虛擬類型):虛擬倉庫(這個基本上用不到);

          Public Repositories下的倉庫類型:

          • 3rd party::無法從公共倉庫獲得的第三方發布版本的構件倉庫,即第三方依賴的倉庫,這個數據通常是由內部人員自行下載之后發布上去;
          • Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫
          • Central::用來代理maven中央倉庫中發布版本構件的倉庫
          • entral M1 shadow::用于提供中央倉庫中M1格式的發布版本的構件鏡像倉庫
          • Codehaus Snapshots::用來代理CodehausMaven 倉庫的快照版本構件的倉庫
          • Releases::內部的模塊中release模塊的發布倉庫,用來部署管理內部的發布版本構件的宿主類型倉庫;release是發布版本;
          • Snapshots:發布內部的SNAPSHOT模塊的倉庫,用來部署管理內部的快照版本構件的宿主類型倉庫;snapshots是快照版本,也就是不穩定版本;

          4)開啟release的重復發版權限

          開發中需要重復發版,則需要開啟release類型倉庫的對應權限設置allow redeploy。如下:
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)

          5)設置代理倉庫(采用阿里云maven倉庫)

          如圖:
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          阿里云倉庫的URL:https://maven.aliyun.com/nexus/content/groups/public/
          部署Maven與Nexus(私服)

          6)將添加的阿里云Proxy加入默認group中

          如圖:
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          保存后,再次刷新頁面,即可看到當前的Nexus地址:
          部署Maven與Nexus(私服)

          關于上述配置的常見使用場景介紹如下:

          • release發版倉庫(nexus默認已建立:maven-releasees);
          • snapshot 測試中心快照倉庫(nexus默認已建立:maven-snapshots);
          • central 中央倉庫 (nexus默認已建立:maven-central);

          關于組:在nexus中可以建立組,將不同類型倉庫集合在一起(nexus默認已建立:maven-public)

          • 場景一: 自定義新建proxy類型倉庫,在maven配置中分別配置不同調用地址,或是將自定義新建的proxy倉庫統一加入一個組,在maven配置中調用一個地址;
          • 場景二: 使用maven已經建立好的proxy倉庫,且使用已建立好的組(maven-public)配置maven調用地址;
            場景一和場景二本質上講沒有什么變化,根據公司開發習慣和需求進行配置即可!

          四、Maven配置nexus私服,將遠程倉庫設置成本地搭建的Nexus私服

          1)修改maven的主配置文件

          [root@maven ~]# vim /usr/local/maven/conf/settings.xml 
          …………………………   #省略部分內容    
              <mirror>
                <id>nexus-testconf</id>
                <mirrorOf>*</mirrorOf>
                <name>nexus testconf</name>      
                <url>http://192.168.1.7:8081/repository/maven-public/</url>
              </mirror>
          #上面的URL就是在nexus上查看到的URL     
            </mirrors>
                       ..........................#省略部分內容
            #跳轉至260行左右,寫以下內容
           <profile>
                 <id>testconf</id>
          
                <repositories>
                   <repository>
                     <id>nexus</id>
                     <url>http://192.168.1.7:8081/repository/maven-public/</url>
                     <releases>
                       <enable>true</enable>
                     </releases>
                     <snapshots>
                       <enable>true</enable>
                     </snapshots>
                  </repository>
                 </repositories>
          
                <pluginRepositories>
                  <pluginRepository>
                    <id>nexus</id>
                    <url>http://192.168.1.7:8081/repository/maven-public/</url>
                     <releases>
                      <enable>true</enable>
                    </releases>
                    <snapshots>
                       <enable>true</enable>
                    </snapshots>
                  </pluginRepository>
                </pluginRepositories>
               </profile>
          
            </profiles>       #需在該標簽以上進行添加!
                       ..........................#省略部分內容  
            <activeProfiles>
              <activeProfile>testconf</activeProfile>    #這里的值一定要和上面profile的ID對應,才可以激活
            </activeProfiles>
          </settings>          #將 <activeProfiles>字段寫在settings字段上面

          2)創建一個maven項目進行測試

          需首先開啟匿名寫入nexus的權限,如下:
          部署Maven與Nexus(私服)

          [root@maven ~]# rm -rf ~/.m2/         #先刪除本地倉庫的緩存
          [root@maven ~]# cd /tmp/testdir/
          [root@maven testdir]# mvn archetype:generate -DgroupId=cn.ljz.ljzweb -DartifactId=lzjweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
          #構建項目,可以看到在構建的過程中使用的是nexus私服地址。
          [root@maven testdir]# cd lzjweb/      #進入構建后的項目
          [root@maven lzjweb]# mvn package        #將項目打包
          [root@maven lzjweb]# ls                 #打包后,會生成target目錄
          pom.xml  src  target

          web頁面進行查看:
          部署Maven與Nexus(私服)

          3)配置認證,將打包好的項目上傳到nexus中

          [root@maven lzjweb]# vim  /usr/local/maven/conf/settings.xml
          #搜索“server”字段
              <server>
                <id>deploymentRepo</id>
                <username>repouser</username>
                <password>repopwd</password>
              </server>
              -->         #定位到該行,寫入以下內容,大概是124行
              <server>
                <id>test-nexus</id>     #自定義ID
                <username>testdevops</username>   #剛開始在nexus的web頁面添加的用戶名ID號
                <password>123456</password>     #用戶名密碼
              </server>
          #修改項目中的pod.xml文件        
          [root@maven lzjweb]# pwd
          /tmp/testdir/lzjweb
          [root@maven lzjweb]# ls
          pom.xml  src  target
          [root@maven ljzweb]# vim pom.xml    #編輯配置文件
                .....................#省略部分內容,以下內容是手動添加的
          <distributionManagement>
                  <snapshotRepository>
                      <id>test-nexus</id>     #這里的ID必須和上面settings文件中配置認證的ID一致
                      <name>Nexus Snapshot</name>
                      <url>http://192.168.1.7:8081/repository/maven-snapshots/</url>
                                  #上面是修訂版本的URL,可在nexus的web界面查看
                  </snapshotRepository>
                  <repository>
                      <id>test-nexus</id>
                      <name>Nexus releases</name>
                      <url>http://192.168.1.7:8081/repository/maven-releases/</url>
                                  #上面是發行版本的URL,同樣在web界面的Repositories中可以查看到
                  </repository>
          </distributionManagement>
          </project>           #在最后一行上面添加以上內容

          web頁面進行查看:
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          如果在部署過程中,出現了錯誤,首先先檢查一下配置文件setting.xml的賬號密碼有沒有與nexus創建的用戶密碼相同,其次再檢查setting.xml里的id標簽和pom.xml文件中的id標簽是否相同,不同會報401(沒有權限)的錯誤。

          4)上傳到maven-release倉庫

          [root@maven lzjweb]# vim /tmp/testdir/lzjweb/pom.xml 
          ………………          #省略部分內容
            <version>1.0-SNAPSHOT</version>   
              #將上面這行的“SNAPSHOT”去掉,更改后如下:
            <version>1.0</version>
          [root@maven lzjweb]# mvn deploy      #再次上傳

          web頁面進行查看:
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)

          5)上傳第三方maven包到nexus私服中

          如圖:
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)

          Maven添加第三方倉庫地址(全局配置)

          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)

          [root@maven lzjweb]# vim /usr/local/maven/conf/settings.xml 
          #在之前的profiles(閉合標簽差不多在293行),填寫以下內容
                  <repository>
                    <id>3rdnexus</id>
                    <url>http://192.168.1.7:8081/repository/3rd/</url>
                    <release>
                      <enable>true</enable>
                    </release>
                    <snapshots>
                      <enable>true</enable>
                    </snapshots>
                  </repository>
            </profiles>             #添加到這個Profiles標簽上面(添加之前應該是293行)
          #在之前的認證字段,再添加一個認證
                  <server>
                <id>test-nexus</id>
                <username>testdevops</username>
                <password>123456</password>
              </server>            #此行以上是之前添加的,再次添加以下內容
             <server>
                <id>3rdnexus</id>    #此ID要與profile中的ID對應
                <username>testdevops</username>
                <password>123456</password>
              </server>
          [root@maven testdir]# ll aliyun-sdk-oss-2.6.1.jar 
          -rw-r--r-- 1 root root 470115 10月 10 17:43 aliyun-sdk-oss-2.6.1.jar
          [root@maven testdir]# mvn deploy:deploy-file -DgroupId=com.aliyun.oss -DartifactId=aliyun-sdk-oss -Dversion=2.6.1 -Dpackaging=jar -Dfile=/tmp/testdir/aliyun-sdk-oss-2.6.1.jar -Durl=http://192.168.1.7:8081/repository/3rd/ -DrepositoryId=3rdnexus
          #基于本地的jar包構建項目      

          web頁面查看上傳的jar包:
          部署Maven與Nexus(私服)
          部署Maven與Nexus(私服)
          ———————————— 本文至此結束,感謝閱讀 ————————————

          分享到:

          相關信息

          系統教程欄目

          欄目熱門教程

          人氣教程排行

          站長推薦

          熱門系統下載

          亚洲精品中文字幕无码专区一,中文字幕av一区乱码深夜动态福利,粗大的内捧猛烈进出少妇