欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

maven私有鏡像倉(cāng)庫(kù)nexus部署使用

 更新時(shí)間:2024年07月12日 09:39:00   作者:正在輸入中…………  
Nexus在企業(yè)開發(fā)中還是比較常用的私有倉(cāng)庫(kù)管理工具,本文主要介紹了maven私有鏡像倉(cāng)庫(kù)nexus部署使用,具有一定的參考價(jià)值,感興趣的可以了解一下

1、Nexus部署

#查找鏡像
docker search sonatype/nexus3
#拉取鏡像
docker pull sonatype/nexus3
#持久化目錄
mkdir -p /data/nexus/data
chmod 777 -R /data/nexus/data
#啟動(dòng)服務(wù)
docker run -d --name nexus3 -p 8081:8081 --restart always -v /data/nexus/data:/nexus-data sonatype/nexus3
#查看日志
docker logs -f nexus3

稍等一下,出現(xiàn) Started Sonatype Nexus OSS 表示啟動(dòng)好了。

2、Nexus訪問(wèn)

安裝完成后可訪問(wèn)管理平臺(tái):http://ip:8081,打開瀏覽器,訪問(wèn) http://ip:8081/

admin賬戶登錄密碼查看

cat /data/nexus/data/admin.password

3、Nexus配置

默認(rèn)倉(cāng)庫(kù)說(shuō)明

maven-central:maven中央庫(kù),默認(rèn)從https://repo1.maven.org/maven2/拉取jar
maven-releases:私庫(kù)發(fā)行版jar,初次安裝請(qǐng)將Deployment policy設(shè)置為Allow redeploy
maven-snapshots:私庫(kù)快照(調(diào)試版本)jar
maven-public:倉(cāng)庫(kù)分組,把上面三個(gè)倉(cāng)庫(kù)組合在一起對(duì)外提供服務(wù),在本地maven基礎(chǔ)配置settings.xml或項(xiàng)目pom.xml中使用

Nexus倉(cāng)庫(kù)類型介紹

hosted:本地倉(cāng)庫(kù),通常我們會(huì)部署自己的構(gòu)件到這一類型的倉(cāng)庫(kù)。比如公司的第二方庫(kù)。
proxy:代理倉(cāng)庫(kù),它們被用來(lái)代理遠(yuǎn)程的公共倉(cāng)庫(kù),如maven中央倉(cāng)庫(kù)。
group:倉(cāng)庫(kù)組,用來(lái)合并多個(gè)hosted/proxy倉(cāng)庫(kù),當(dāng)你的項(xiàng)目希望在多個(gè)repository使用資源時(shí)就不需要多次引用了,只需要引用一個(gè)group即可。

4、創(chuàng)建Blob Stores

在創(chuàng)建repository之前,還需要先指定文件存儲(chǔ)目錄,便于統(tǒng)一管理。就需要?jiǎng)?chuàng)建Blob Stores,不創(chuàng)建則使用的是default

img

img

可以看到blob stores有兩個(gè),一個(gè)是系統(tǒng)默認(rèn)的,一個(gè)是剛創(chuàng)建的。如果不想自己創(chuàng)建,使用系統(tǒng)默認(rèn)的文件存儲(chǔ)目錄也是可以的。到時(shí)候創(chuàng)建repository時(shí),存儲(chǔ)目錄選擇default就可以了。新創(chuàng)建的目錄,可以在/data/blobs/目錄下面可以看到。

img

img

5、Nexus倉(cāng)庫(kù)

img

如圖所示,代理倉(cāng)庫(kù)負(fù)責(zé)代理遠(yuǎn)程中央倉(cāng)庫(kù),托管倉(cāng)庫(kù)負(fù)責(zé)本地資源,組資源庫(kù) = 代理資源庫(kù) + 托管資源庫(kù)

6、創(chuàng)建proxy repository代理倉(cāng)庫(kù)

img

選擇maven2(proxy),代理倉(cāng)庫(kù)

img

設(shè)置代理倉(cāng)庫(kù)

img

img

img

其他的可以采用默認(rèn),以后需要修改的可以再修改。

這里推薦幾個(gè)遠(yuǎn)程倉(cāng)庫(kù)

jboss的maven中央倉(cāng)庫(kù)地址:http://repository.jboss.com/maven2/
阿里云的maven中央倉(cāng)庫(kù)地址:http://maven.aliyun.com/nexus/content/groups/public/
apache的maven中央倉(cāng)庫(kù)地址:http://repo.maven.apache.org/maven2/

7、創(chuàng)建hosted repository倉(cāng)庫(kù)

jboss的maven中央倉(cāng)庫(kù)地址:http://repository.jboss.com/maven2/
阿里云的maven中央倉(cāng)庫(kù)地址:http://maven.aliyun.com/nexus/content/groups/public/
apache的maven中央倉(cāng)庫(kù)地址:http://repo.maven.apache.org/maven2/

img

img

img

上圖的Hosted設(shè)置選項(xiàng),選項(xiàng)中有三個(gè)值:

Allow redeploy:允許同一個(gè)版本號(hào)下重復(fù)提交代碼, nexus以時(shí)間區(qū)分
Disable redeploy:不允許同一個(gè)版本號(hào)下重復(fù)提交代碼
Read-Only:不允許提交任何版本原生的maven-releases庫(kù)是Disable redeploy設(shè)置, maven-snapshots是Allow redeploy。

8、創(chuàng)建group repository組倉(cāng)庫(kù)

img

img

img

9、maven部署配置

#獲取軟件包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz --no-check-certificate
tar -zxvf apache-maven-3.9.6-bin.tar.gz
echo "" >>/etc/profile
source /etc/profile
mvn -V

Maven下的setting.xml文件和項(xiàng)目中的pom.xml文件的關(guān)系是:settting.xml文件是全局設(shè)置,而pom.xml文件是局部設(shè)置。pom.xml文件對(duì)于項(xiàng)目來(lái)說(shuō),是優(yōu)先使用的。而pom.xml文件中如果沒(méi)有配置鏡像地址的話,就按照settting.xml中定義的地址去查找。

如上圖方式獲取組倉(cāng)庫(kù)smart_group的倉(cāng)庫(kù)地址,修改setting.xml文件如下:

<!--nexus服務(wù)器,id為組倉(cāng)庫(kù)name-->
  <servers>  
    <server>  
        <id>custom_group</id>  
        <username>admin</username>  
        <password>admin123</password>  
    </server>   
  </servers>  
  <!--倉(cāng)庫(kù)組的url地址,id和name可以寫組倉(cāng)庫(kù)name,mirrorOf的值設(shè)置為central-->  
  <mirrors>     
    <mirror>  
        <id>custom_group</id>  
        <name>custom_group</name>  
        <url>http://192.168.124.189:8081/repository/custom_group/</url>  
        <mirrorOf>central</mirrorOf>  
    </mirror>     
  </mirrors>

img

img

img

修改后可以重新編譯項(xiàng)目,必須添加參數(shù)-U,(-U,–update-snapshots,強(qiáng)制更新releases、snapshots類型的插件或依賴庫(kù),否則maven一天只會(huì)更新一次snapshot依賴)。代理倉(cāng)庫(kù)會(huì)從遠(yuǎn)程中央倉(cāng)庫(kù)下載jar包

mvn clean compile -U

新建SpringBoot項(xiàng)目,可以查看本地倉(cāng)庫(kù),遠(yuǎn)程倉(cāng)庫(kù)的下載的Jar包

img

img

img

這個(gè)時(shí)候可以看到代理倉(cāng)庫(kù)已經(jīng)從中央倉(cāng)庫(kù)下載了項(xiàng)目編譯需要的jar包。同樣地,在組倉(cāng)庫(kù)中也能看到所有的jar包,包括代理倉(cāng)庫(kù)和宿主倉(cāng)庫(kù)的。

img

10、管理平臺(tái)上傳三方j(luò)ar包

有些jar是第三方提供的,在中央倉(cāng)庫(kù)中是沒(méi)有的,我們可以上傳這些本地三方j(luò)ar包到hosted repository宿主倉(cāng)庫(kù)中。

img

img

上傳成功后,就可以看到hosted repository和group repository中已經(jīng)有了剛上傳的三方j(luò)ar包

img

img

然后項(xiàng)目中通過(guò)編譯打包就可以下載jar包到本地repository中了,記住maven clean、compile、package首次執(zhí)行時(shí)加參數(shù)-U。

img

11、命令上傳三方j(luò)ar包

在setting.xml配置文件中添加hosted repository server

<!--id自定義,但是在使用命令上傳的時(shí)候會(huì)用到-->
<server>  
    <id>custom_hosted</id>  
    <username>admin</username>  
    <password>admin123</password>  
</server>

使用如下命令上傳jar包:

mvn deploy:deploy-file -DgroupId=byd.ghy -DartifactId=portal-auth -Dversion=1.0.0 -Dpackaging=jar -Dfile=D:\workspace_byd\workspace_ghy\workspace_portal-backend\portal-backend-jar-v2\target\auth-server.jar -Durl=http://192.168.124.189:8081/repository/custom_hosted/ -DrepositoryId=custom_hosted
 
命令解釋:
-DgroupId=byd.ghy                         自定義
-DartifactId=portal-auth                  自定義
-Dversion=1.0.0                     自定義,三個(gè)自定義,構(gòu)成pom.xml文件中的標(biāo)識(shí)
-Dpackaging=jar                    傳的類型是jar類型
-Dfile=D:\auth-server.jar                jar包的本地磁盤位置
-Durl=http://ip:8081/repository/custom_hosted/   hosted資源庫(kù)的地址
-DrepositoryId=custom_hosted             需要和setting.xml文件中配置的ID一致

例如:
mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=./cloudx-common-basics-2.0.2-SNAPSHOT.jar -DgroupId=com.risit.chk -DartifactId=risit-chk-common -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -DrepositoryId=nexus-snapshots -Durl=http://10.10.111.222:8081/repository/nexus-snapshots/
      
mvn deploy:deploy-file -Dfile=cloudx-center-2.0.2-SNAPSHOT.pom -DgroupId=com.cloudx -DartifactId=cloudx-center -Dversion=2.0.2-SNAPSHOT -Dpackaging=pom -DrepositoryId=nexus-snapshots -Durl=http://10.10.111.222:8081/repository/nexus-snapshots/

img

上傳成功后,hosted repository中已經(jīng)可以看到了

img

12、deploy部署jar包到私服

release和snapshots jar包區(qū)別

SNAPSHOT版本代表不穩(wěn)定(快照版本),還在處于開發(fā)階段,隨時(shí)都會(huì)有變化。當(dāng)上傳同樣的版本號(hào)jar包的時(shí)候,SNAPSHOT會(huì)在版本號(hào)的后面自動(dòng)追加一串新的數(shù)字,即日志標(biāo)簽,nexus會(huì)根據(jù)日志標(biāo)簽區(qū)分出不同的版本,在maven引用時(shí),如果使用的是snapshot版本,重新導(dǎo)入maven的時(shí)候,會(huì)去私庫(kù)拉取最新上傳的代碼。

RELEASE則代表穩(wěn)定的版本(發(fā)布版本),一般上線后都會(huì)改用RELEASE版本。
也就是說(shuō)1.0,2.0這樣的版本只能有一個(gè),也就是說(shuō)當(dāng)前版本號(hào)下,不可能出現(xiàn)不同的jar。

創(chuàng)建snapshot倉(cāng)庫(kù)

可以在nexus上添加一個(gè)snapshot倉(cāng)庫(kù),專門用于存放snapshot版本的jar包。snapshot倉(cāng)庫(kù)也是hosted類型的,創(chuàng)建方式和hosted repository類型。創(chuàng)建好后,加入到組倉(cāng)庫(kù)里面就可以了。

img

一定要選擇Deployment Policy為allow redeploy

img

img

同樣的操作,創(chuàng)建Release類型的倉(cāng)庫(kù),并加入到組中

img

13、項(xiàng)目pom.xml文件配置

可以在項(xiàng)目的pom文件中設(shè)置具體的relaeses庫(kù)和snapshots庫(kù)。如果當(dāng)前項(xiàng)目的版本號(hào)的后綴名中帶著-SNAPSHOT,類似***-SNAPSHOT,就會(huì)將項(xiàng)目jar包提交到snapshots庫(kù)中,沒(méi)有帶-SNAPSHOT的話會(huì)提交releases庫(kù)中。

在pom.xml文件中配置 distributionManagement 節(jié)點(diǎn)如下,在項(xiàng)目中執(zhí)行deploy命令后,jar包將會(huì)被上傳到nexus中。

setting.xml中配置

<server>  
    <id>custom_snapshots</id>  
    <username>admin</username>  
    <password>admin123</password>  
</server>
<server>  
    <id>custom_releases</id>  
    <username>admin</username>  
    <password>admin123</password>  
</server>

pom.xml配置

    <repositories>
        <repository>
            <id>custom_group</id>
            <name>Nexus Repository</name>
            <url>http://192.168.124.189:8081/repository/custom_group/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>custom_group</id>
            <name>Nexus Plugin Repository</name>
            <url>http://192.168.124.189:8081/repository/custom_group/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>
<!--項(xiàng)目分發(fā)信息,在執(zhí)行mvn deploy后表示要發(fā)布的位置。有了這些信息就可以把網(wǎng)站部署到遠(yuǎn)程服務(wù)器或者把構(gòu)件jar等部署到遠(yuǎn)程倉(cāng)庫(kù)。 -->
    <distributionManagement>
        <repository><!--部署項(xiàng)目產(chǎn)生的構(gòu)件到遠(yuǎn)程倉(cāng)庫(kù)需要的信息 -->
            <id>custom_releases</id><!-- 此處id和settings.xml的id保持一致 -->
            <name>Nexus Release Repository</name>
            <url>http://192.168.124.189:8081/repository/custom_releases/</url>
        </repository>
        <snapshotRepository><!--構(gòu)件的快照部署到哪里?如果沒(méi)有配置該元素,默認(rèn)部署到repository元素配置的倉(cāng)庫(kù),參見distributionManagement/repository元素 -->
            <id>custom_snapshots</id><!-- 此處id和settings.xml的id保持一致 -->
            <name>Nexus Snapshot Repository</name>
            <url>http://192.168.124.189:8081/repository/custom_snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

默認(rèn)地,maven編譯打包不會(huì)下載SNAPSHOT版本的jar包,所以還需要在pom.xml文件中配置支持下載snapshot版本jar包。

mvn clean deploy -Dmaven.test.skip=true

img

img

img

img

img

img

至此,nexus搭建完畢,支持本地部署依賴jar包?。?!

14、問(wèn)題排查

1、nexus.log日志中報(bào)錯(cuò)內(nèi)容如下:

UNKNOWN com.sonatype.nexus.plugins.outreach.internal.outreach.SonatypeOutreach - Could not download page bundle
java.net.SocketException: Network is unreachable (connect failed)

img

解決方法:

a) 訪問(wèn)Nexus管理站點(diǎn),我這里是 http://192.168.124.184:8081,進(jìn)入后,用管理員帳號(hào)登錄。

b)點(diǎn)擊 下圖中上面的按鈕,然后選擇左側(cè)Capabilities,然后點(diǎn)擊右側(cè)的 Outreach:Management

img

c)點(diǎn)擊【disable】按鈕,關(guān)閉Outreach服務(wù)

img

或者給Outreach設(shè)定新的URL,可以在標(biāo)簽頁(yè) Settings 中的 Override Outreach Content URL項(xiàng)中設(shè)定。Nexus支持的URL有如下三個(gè):

  • http://links.sonatype.com and https://links.sonatype.com
  • http://download.sonatype.com and https://download.sonatype.com
  • http://sonatype-download.global.ssl.fastly.net and https://sonatype-download.global.ssl.fastly.net

到此這篇關(guān)于maven私有鏡像倉(cāng)庫(kù)nexus部署使用的文章就介紹到這了,更多相關(guān)maven nexus部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

最新評(píng)論