<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Maven 私服 Nexus3 [ 福利:當(dāng)當(dāng)優(yōu)惠碼 ]

          共 4106字,需瀏覽 9分鐘

           ·

          2021-04-24 20:12

          優(yōu)惠碼:PX3RVM 300減60      Z4JUCB 20030

          1、Maven和Nexus3 簡(jiǎn)介

          Maven是一個(gè)采用純Java編寫(xiě)的開(kāi)源項(xiàng)目管理工具

          采用一種被稱(chēng)之為Project Object Model(POM)概念來(lái)管理項(xiàng)目,所有的項(xiàng)目配置信息都被定義在一個(gè)叫做POM.xml的文件中, 通過(guò)該文件Maven可以管理項(xiàng)目的整個(gè)生命周期,包括清除、編譯,測(cè)試,報(bào)告、打包、部署等等。

          目前Apache下絕大多數(shù)項(xiàng)目都已經(jīng)采用Maven進(jìn)行管理. 而Maven本身還支持多種插件, 可以方便更靈活的控制項(xiàng)目, 開(kāi)發(fā)人員的主要任務(wù)應(yīng)該是關(guān)注商業(yè)邏輯并去實(shí)現(xiàn)它, 而不是把時(shí)間浪費(fèi)在學(xué)習(xí)如何在不同的環(huán)境中去依賴(lài)jar包,項(xiàng)目部署等。

          Maven和ant都是軟件構(gòu)建工具(軟件管理工具),Maven比Ant更加強(qiáng)大,已經(jīng)取代了ant,jar包的聲明式依賴(lài)描述。Maven有jar包的倉(cāng)庫(kù)。

          私服是架設(shè)在局域網(wǎng)的一種特殊的遠(yuǎn)程倉(cāng)庫(kù),目的是代理遠(yuǎn)程倉(cāng)庫(kù)及部署第三方構(gòu)件。有了私服之后,當(dāng) Maven 需要下載構(gòu)件時(shí),直接請(qǐng)求私服,私服上存在則下載到本地倉(cāng)庫(kù);否則,私服請(qǐng)求外部的遠(yuǎn)程倉(cāng)庫(kù),將構(gòu)件下載到私服,再提供給本地倉(cāng)庫(kù)下載。

            

          公司如果沒(méi)有maven私服,則需要用手動(dòng)打jar包的方式添加依賴(lài)

          2、安裝 Maven

          1、下載 maven

          [[email protected] ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

          2、解壓安裝

          [[email protected] ~]# tar xf apache-maven-3.5.4-bin.tar.gz -C /usr/local/
          [[email protected] ~]# cd /usr/local/
          [[email protected] ~]# ln -s apache-maven-3.5.4/ maven

          3、安裝 java 環(huán)境

          [[email protected] ~]# tar xf jdk-8u201-linux-x64.tar.gz -C /usr/local/
          [[email protected] ~]# cd /usr/local/
          [[email protected] ~]# ln -s jdk1.8.0_201/ java

          4、添加環(huán)境變量

          [[email protected] ~]# vim /etc/profile

          添加如下內(nèi)容(這里的MAVEN_HOME需要改為你自己的maven解壓目錄):

          JAVA_HOME=/usr/local/java
          export MAVEN_HOME=/usr/local/maven
          export JRE_HOME=/usr/local/java/jre
          export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
          export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin:$PATH
          • 重載環(huán)境變量

          [[email protected] ~]# source /etc/profile

          5、驗(yàn)證 maven 安裝

          輸入命令 mvn -version 看到如下內(nèi)容說(shuō)明安裝成功了。

          3、安裝 nexus3

          1、下載

          專(zhuān)業(yè)版的nexus收費(fèi),下載開(kāi)源版 Nexus OSS,下載地址為 https://www.sonatype.com/download-oss-sonatype

          Wing下載的時(shí)候可以獲取鏈接用迅雷下載,我是直接把https改成了http下載,下載下來(lái)的包大小不一樣,我暫時(shí)使用的是小一點(diǎn)的120多M的安裝包

          2、解壓

          [[email protected] ~]# cd /usr/local
          [[email protected] ~]# tar -zxf nexus-3.13.0-01-unix.tar.gz

          解壓后會(huì)多出兩個(gè)目錄,nexus-3.13.0-01和sonatype-work。

          3、啟動(dòng)

          [[email protected] ~]# cd nexus-3.13.0-01/bin/
          [[email protected] ~]# ./nexus start

          看到如圖所示內(nèi)容表明我們已經(jīng)啟動(dòng)成功了,游覽器輸入http://localhost:8081即可訪(fǎng)問(wèn)。

          注意:

          啟動(dòng)后如果你立即訪(fǎng)問(wèn)可能發(fā)現(xiàn)什么都沒(méi)有,不要急這個(gè)啟動(dòng)需要一定時(shí)間,1分鐘后再?lài)L試訪(fǎng)問(wèn)

          登錄

          點(diǎn)擊右上角的sign in登錄,輸入賬戶(hù)admin

          密碼:

          # cat /root/sonatype-work/nexus3/admin.password
          91c37108-809a-495b-942d-3932b9b33e04

          4、倉(cāng)庫(kù)介紹

          點(diǎn)擊“設(shè)置-Repositories”,就可以看到倉(cāng)庫(kù),分三種類(lèi)型:

          • proxy:是遠(yuǎn)程倉(cāng)庫(kù)的代理。比如說(shuō)在nexus中配置了一個(gè)central repository的proxy,當(dāng)用戶(hù)向這個(gè)proxy請(qǐng)求一個(gè)artifact,這個(gè)proxy就會(huì)先在本地查找,如果找不到的話(huà),就會(huì)從遠(yuǎn)程倉(cāng)庫(kù)下載,然后返回給用戶(hù),相當(dāng)于起到一個(gè)中轉(zhuǎn)的作用。    

          • Hosted:是宿主倉(cāng)庫(kù),用戶(hù)可以把自己的一些構(gòu)件,deploy到hosted中,也可以手工上傳構(gòu)件到hosted里。比如說(shuō)oracle的驅(qū)動(dòng)程序,ojdbc6.jar,在central repository是獲取不到的,就需要手工上傳到hosted里,一般用來(lái)存放公司自己的jar包;

          • Group:是倉(cāng)庫(kù)組,在maven里沒(méi)有這個(gè)概念,是nexus特有的。目的是將上述多個(gè)倉(cāng)庫(kù)聚合,對(duì)用戶(hù)暴露統(tǒng)一的地址,這樣用戶(hù)就不需要在pom中配置多個(gè)地址,只要統(tǒng)一配置group的地址就可以了右邊那個(gè)Repository Path可以點(diǎn)擊進(jìn)去,看到倉(cāng)庫(kù)中artifact列表。不過(guò)要注意瀏覽器緩存,當(dāng)你的項(xiàng)目希望在多個(gè)repository使用資源時(shí)就不需要多次引用了,只需要引用一個(gè)group即可

            maven-public:maven-central、maven-release和maven-snapshot三個(gè)庫(kù)的合集。

            maven-release:用來(lái)存放release版本的jar包。

            maven-snapshot:用來(lái)存放snapshot版本的jar包。


          關(guān)于Maven的Snapshot版本與Release版本

          1. Snapshot版本代表不穩(wěn)定、尚處于開(kāi)發(fā)中的版本

          2. Release版本則代表穩(wěn)定的版本

          3. 什么情況下該用SNAPSHOT? 協(xié)同開(kāi)發(fā)時(shí),如果A依賴(lài)構(gòu)件B,由于B會(huì)更新,B應(yīng)該使用SNAPSHOT來(lái)標(biāo)識(shí)自己。這種做法的必要性可以反證如下:

          a.如果B不用SNAPSHOT,而是每次更新后都使用一個(gè)穩(wěn)定的版本,那版本號(hào)就會(huì)升得太快,每天一升e68a84e8a2ade79fa5e9819331333363396362甚至每個(gè)小時(shí)一升,這就是對(duì)版本號(hào)的濫用。

          b.如果B不用SNAPSHOT,  但一直使用一個(gè)單一的Release版本號(hào),那當(dāng)B更新后,A可能并不會(huì)接受到更新。因?yàn)锳所使用的repository一般不會(huì)頻繁更新release版本的緩存(即本地repository),所以B以不換版本號(hào)的方式更新后,A在拿B時(shí)發(fā)現(xiàn)本地已有這個(gè)版本,就不會(huì)去遠(yuǎn)程Repository下載最新的B

          1. 不用Release版本,在所有地方都用SNAPSHOT版本行不行?不行。正式環(huán)境中不得使用snapshot版本的庫(kù)。 比如說(shuō),今天你依賴(lài)某個(gè)snapshot版本的第三方庫(kù)成功構(gòu)建了自己的應(yīng)用,明天再構(gòu)建時(shí)可能就會(huì)失敗,因?yàn)榻裢淼谌娇赡芤呀?jīng)更新了它的snapshot庫(kù)。你再次構(gòu)建時(shí),Maven會(huì)去遠(yuǎn)程repository下載snapshot的最新版本,你構(gòu)建時(shí)用的庫(kù)就是新的jar文件了,這時(shí)正確性就很難保證了。

          5、向 nexus3 私服上傳 jar 包

          1、準(zhǔn)備環(huán)境
          1、創(chuàng)建3rd_part庫(kù)

          使用默認(rèn)用戶(hù) admin/admin123 登陸

          點(diǎn)擊左側(cè)的repository\repositories后,在右側(cè)點(diǎn)擊create repository

          然后選擇maven2(hosted),填寫(xiě)如下

          跳到首頁(yè)后選擇maven-public

          3rd_part移到member中,即將3rd_partmaven-public管理,點(diǎn)擊save

          至此,創(chuàng)建倉(cāng)庫(kù)完成

          2、創(chuàng)建 3rd_part 管理用戶(hù)

          創(chuàng)建用戶(hù): 用戶(hù)名/密碼-dev/dev123

          2、直接瀏覽器

          使用dev/dev123登陸,點(diǎn)擊upload

          填寫(xiě)上傳jar包的信息后,點(diǎn)擊upload

          可以看到已經(jīng)上傳成功

          4、常見(jiàn)錯(cuò)誤

          問(wèn)題1:上傳報(bào)錯(cuò)誤碼405,F(xiàn)ailed to transfer file。

               解決:仔細(xì)查看報(bào)錯(cuò)信息就會(huì)發(fā)現(xiàn),是上傳的url錯(cuò)了,原因就是repository的地址寫(xiě)錯(cuò)了。

          問(wèn)題2:錯(cuò)誤碼401或者403

               解決:其實(shí)403錯(cuò)誤就是“禁止訪(fǎng)問(wèn)”的含義,所以問(wèn)題的根源肯定在授權(quán)上面。Maven在默認(rèn)情況下會(huì)使用deployment帳號(hào)(默認(rèn)密碼deploy)登錄的系統(tǒng),但是關(guān)鍵的Nexus中Releases倉(cāng)庫(kù)默認(rèn)的Deployment Policy是“Disable Redeploy”,所以無(wú)法部署的問(wèn)題在這個(gè)地方,方法是將其修改為“Allow Redeploy”就可以了。401就是Maven settings.xml沒(méi)有設(shè)置密碼

          喜歡,在看


          瀏覽 31
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  波多野吉衣208在线 | 大屌成人免费视频 | 国产一区二区在线导航 | 亚洲一区无码在线观看 | 激情丁香五月 |