最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Docker搭建Nexus私有倉庫實現(xiàn)Maven私服

 更新時間:2022年01月27日 11:52:35   作者:比特桃  
Maven大家應(yīng)該都比較熟了,我這里就用安卓人狂喜的Gradle來演示一下,在build.gradle中編寫腳本即可上傳,接下來通過本文給大家介紹下利用Docker搭建Nexus私有倉庫實現(xiàn)Maven私服的問題,感興趣的朋友一起看看吧

一、前言

相信國內(nèi)的小伙伴都經(jīng)歷過,Gradle、Maven、NPM下拉速度過慢的情況。我們一般的做法是配置阿里云這樣的中央倉庫。加速問題是可以采用這種方式解決,但如果是團(tuán)隊內(nèi)部的庫想進(jìn)行上傳分發(fā),傳到Maven Central這種共用的Maven倉庫就不太合適了。那樣保密性和時效性都將收到破壞。所以在團(tuán)隊內(nèi)部,我們一般都會搭建局域網(wǎng)內(nèi)私有的中央倉庫。支撐這種私有倉庫的軟件就是Nexus,本文將詳細(xì)介紹如何從零搭建、上傳庫、下拉庫整個使用過程。

二、Nexus搭建

現(xiàn)如今萬物皆可Docker,我們沒必要破壞本機(jī)系統(tǒng)原生安裝了。直接新建一個docker-compose.yml文件,寫入如下內(nèi)容:

version: '3.1'
services:
  nexus:
    restart: always
    image: sonatype/nexus3
    container_name: nexus
    ports:
      - 6005:8081
    volumes:
      - /data/Docker/nexus/data:/nexus-data   

注意最后一行volumens映射的位置,如需備份還原,只需要將這個文件夾打包恢復(fù)即可。
寫好后,運行docker-compose up -d運行即可。然后訪問服務(wù)器的6005端口,看到這個界面就算搭建成功了。

三、配置倉庫

搭建好后,會有一些默認(rèn)的倉庫:

maven-central:maven 中央庫,默認(rèn)從 https://repo1.maven.org/maven2/ 拉取 jar
maven-releases:私庫發(fā)行版 jar maven-snapshots:私庫快照(調(diào)試版本)jar
maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務(wù)

概念說明:

group:這是一個倉庫聚合的概念,用戶倉庫地址選擇 Group 的地址,即可訪問 Group中配置的,用于方便開發(fā)人員自己設(shè)定的倉庫。maven-public 就是一個 Group 類型的倉庫,內(nèi)部設(shè)置了多個倉庫,訪問順序取決于配置順序,3.x 默認(rèn)為Releases、Snapshots、Central,當(dāng)然你也可以自己設(shè)置。
hosted:私有倉庫,內(nèi)部項目的發(fā)布倉庫,專門用來存儲我們自己生成的 jar 文件 snapshots:本地項目的快照倉庫
releases: 本地項目發(fā)布的正式版本
proxy:代理類型,從遠(yuǎn)程中央倉庫中尋找數(shù)據(jù)的倉庫(可以點擊對應(yīng)的倉庫的Configuration 頁簽下 Remote Storage 屬性的值即被代理的遠(yuǎn)程倉庫的路徑),如可配置阿里云 maven 倉庫
central:中央倉庫

3.1 配置加速庫

我們通過上文了解到,Nexus默認(rèn)會從maven.org拉取我們需要的公共庫。我們需要配置一個阿里云的加速庫,這樣凡是需要公共庫的都會優(yōu)先從阿里云加速下載。在設(shè)置中,點擊創(chuàng)建倉庫。

可以看到,我們可以創(chuàng)建多種倉庫,Docker、Maven、NPM、Yum都可以。本文就以Maven為例了,其他倉庫都類似。

可以寫個名字,然后在Remote Storage的地址欄中,輸入阿里云的Maven倉庫:http://maven.aliyun.com/nexus/content/groups/public/

寫好后,就可以保存了。然后再進(jìn)入maven-public組的設(shè)置,將我們剛剛創(chuàng)建的aliyun-repository代理庫添加到右邊,并調(diào)到第一個位置。這樣一些公共庫比如Spring就會默認(rèn)從阿里云那邊下載,并且Nexus會自帶緩存功能,只有第一次需要下載。后續(xù)將直接從局域網(wǎng)的Nexus下載,大大加快了下載速度。(非常適合沒有外網(wǎng)開發(fā)的團(tuán)隊)

3.2 創(chuàng)建私有倉庫

配置好Maven的基礎(chǔ)加速庫后,我們就來創(chuàng)建一個團(tuán)隊內(nèi)部使用的Maven倉庫。我們繼續(xù)點擊創(chuàng)建倉庫,這里選擇maven2(hosted)。

Version policy下面有Release(正式版)、Snapshots(測試版)、Mixed(混合)三個選項,其實和我們平時引用第三方的庫是一樣的,只是我們一般會引用第三方庫的正式版。Deployment policy這里我選擇了Allow redeploy可以覆蓋上傳,你可以根據(jù)自身情況調(diào)整下面這些參數(shù)。

創(chuàng)建好后就可以直接使用了。但在此之前,我們最好配置一下開發(fā)賬號,因為上傳庫的時候需要有賬號密碼。如果直接把系統(tǒng)管理員的賬號給開發(fā)者會比較危險,畢竟現(xiàn)在刪庫跑路的很多。

四、配置權(quán)限

在設(shè)置頁面的Roles里先創(chuàng)建一個角色:

然后只給這個開發(fā)這個角色,固定倉庫的瀏覽和編輯權(quán)限。

最后創(chuàng)建用戶,然后將該用戶名、密碼和該倉庫的地址給到開發(fā)者就可以了。

倉庫地址可以點擊列表中Copy得到:

五、上傳Jar包

上傳Jar包到私有倉庫的方式其實有很多種,我們一般項目中一般會采用Maven或Gradle腳本來進(jìn)行。Maven大家應(yīng)該都比較熟了,我這里就用安卓人狂喜的Gradle來演示一下。在build.gradle中編寫如下腳本即可上傳。

方便大佬復(fù)制:

group 'com.niubi'
version '1.0-SNAPSHOT'
//加載插件
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'idea'
//配置打Jar包的參數(shù)
javadoc {
    failOnError false
    options.addStringOption('Xdoclint:none', '-quiet')
    options.addStringOption('encoding', 'UTF-8')
    options.addStringOption('charSet', 'UTF-8')
}
//打包文檔
task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from 'build/docs/javadoc'
}
//打包源代碼
task sourcesJar(type: Jar, dependsOn: classes) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

artifacts {
    archives jar
    archives javadocJar
    archives sourcesJar
}
uploadArchives {
    repositories {
        mavenDeployer {
            // 開發(fā)版
            snapshotRepository(url: "http://XXX:6005/repository/GfptLib/") {
                authentication(userName: "xxx", password: "xxx")
            }
            /*// 正式版
            repository(url: "http://XXX:8081/repository/maven-releases/") {
                authentication(userName: "xxx", password: "xxx")
            }*/
			// 只發(fā)布jar包
            addFilter('jar') {artifact, file ->
                artifact.ext == 'jar'
            }
            pom.groupId = "$project.group"
            pom.artifactId = "$project.name"
            pom.version = "$project.version"
        }
    }
}

和Maven一樣,我們寫好后,可以直接在IDEA的Gradle窗口中看到這個命令,雙擊即可運行上傳:

運行成功后,就可以在Maven倉庫中看到該Jar包,并可以將該jar包引用到項目中去。

六、使用Jar包

和引用第三方庫的用法一樣,只需要將剛剛上傳jar包的坐標(biāo)寫對后就可以使用:

compile("com.niubi:util:latest.integration")

當(dāng)然,在倉庫依賴地址中,我們需要加入自己的Maven私服地址:

// 【倉庫設(shè)置】
repositories {
    // 使用本地倉庫
    mavenLocal()
    // 使用團(tuán)隊私服倉庫
    maven {
        url "http://xxx:6005/repository/GfptLib/"
    }
    maven {
        url "http://xxx:6005/repository/maven-public/"
    }
    // 使用 Gradle 的自身默認(rèn)配置加載倉庫
    mavenCentral()
}

重新編譯一下,就可以下載到我們剛剛上傳的Jar包了。

到此這篇關(guān)于Docker輕松搭建Nexus私有倉庫,實現(xiàn)Maven私服的文章就介紹到這了,更多相關(guān)Docker搭建Nexus私有倉庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker安裝部署RabbitMQ的實現(xiàn)步驟

    Docker安裝部署RabbitMQ的實現(xiàn)步驟

    RabbitMQ是一款開源的消息隊列中間件,能夠在分布式系統(tǒng)中實現(xiàn)可靠的消息傳遞,本文主要介紹了Docker安裝部署RabbitMQ的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • docker images導(dǎo)入導(dǎo)出方式

    docker images導(dǎo)入導(dǎo)出方式

    這篇文章主要介紹了docker images導(dǎo)入導(dǎo)出方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker容器如何訪問宿主機(jī)的Mysql數(shù)據(jù)庫

    Docker容器如何訪問宿主機(jī)的Mysql數(shù)據(jù)庫

    使用Docker能實現(xiàn)服務(wù)的容器化,并使用容器間網(wǎng)絡(luò)在它們之間進(jìn)行通信,下面這篇文章主要給大家介紹了關(guān)于Docker容器如何訪問宿主機(jī)的Mysql數(shù)據(jù)庫,需要的朋友可以參考下
    2024-04-04
  • docker搭建dnsmasq服務(wù)的實現(xiàn)

    docker搭建dnsmasq服務(wù)的實現(xiàn)

    本文將指導(dǎo)讀者如何使用Docker搭建DNSmasq服務(wù),通過簡單的步驟和詳細(xì)的說明,幫助讀者快速在Docker環(huán)境中部署DNSmasq,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • docker安裝seafile企業(yè)云盤方式

    docker安裝seafile企業(yè)云盤方式

    本文詳細(xì)介紹了如何在Docker中安裝和配置Seafile,包括基礎(chǔ)安裝、生產(chǎn)環(huán)境配置、HTTPS設(shè)置、數(shù)據(jù)備份與恢復(fù)以及常見問題解決,通過這些步驟,您可以快速部署一個穩(wěn)定且安全的Seafile實例
    2025-02-02
  • Docker的鏡像制作方法詳解

    Docker的鏡像制作方法詳解

    這篇文章主要介紹了Docker的鏡像制作方法的相關(guān)資料,文章講解了Docker鏡像的基本原理、結(jié)構(gòu)和制作方式,鏡像是創(chuàng)建Docker容器的基礎(chǔ),需要的朋友可以參考下
    2024-10-10
  • Docker?安裝Tomcat、實現(xiàn)Tomcat集群的詳細(xì)過程

    Docker?安裝Tomcat、實現(xiàn)Tomcat集群的詳細(xì)過程

    這篇文章主要介紹了Docker安裝Tomcat、實現(xiàn)Tomcat集群,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • 如何給一個正在運行的Docker容器動態(tài)添加Volume

    如何給一個正在運行的Docker容器動態(tài)添加Volume

    這篇文章主要介紹了如何給一個正在運行的Docker容器動態(tài)添加Volume,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • docker-compose中的環(huán)境變量問題

    docker-compose中的環(huán)境變量問題

    這篇文章主要介紹了docker-compose中的環(huán)境變量問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解基于Docker的服務(wù)部署流程

    詳解基于Docker的服務(wù)部署流程

    這篇文章主要介紹了詳解基于Docker的服務(wù)部署流程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06

最新評論

霍山县| 大名县| 天祝| 柯坪县| 全州县| 沐川县| 兴化市| 高安市| 安乡县| 龙口市| 民权县| 望城县| 南陵县| 肥乡县| 海原县| 中宁县| 获嘉县| 双辽市| 汉中市| 霍城县| 来凤县| 巴林右旗| 龙胜| 新田县| 鄂尔多斯市| 罗田县| 观塘区| 凤山县| 门头沟区| 囊谦县| 上林县| 盘山县| 叙永县| 沅陵县| 涞水县| 合阳县| 咸宁市| 鹤庆县| 平潭县| 清远市| 当雄县|