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

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

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

一、前言

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

二、Nexus搭建

現(xiàn)如今萬物皆可Docker,我們沒必要破壞本機(jī)系統(tǒng)原生安裝了。直接新建一個(gè)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映射的位置,如需備份還原,只需要將這個(gè)文件夾打包恢復(fù)即可。
寫好后,運(yùn)行docker-compose up -d運(yùn)行即可。然后訪問服務(wù)器的6005端口,看到這個(gè)界面就算搭建成功了。

三、配置倉庫

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

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

概念說明:

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

3.1 配置加速庫

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

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

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

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

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

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

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

創(chuàng)建好后就可以直接使用了。但在此之前,我們最好配置一下開發(fā)賬號(hào),因?yàn)樯蟼鲙斓臅r(shí)候需要有賬號(hào)密碼。如果直接把系統(tǒng)管理員的賬號(hào)給開發(fā)者會(huì)比較危險(xiǎn),畢竟現(xiàn)在刪庫跑路的很多。

四、配置權(quán)限

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

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

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

倉庫地址可以點(diǎn)擊列表中Copy得到:

五、上傳Jar包

上傳Jar包到私有倉庫的方式其實(shí)有很多種,我們一般項(xiàng)目中一般會(huì)采用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窗口中看到這個(gè)命令,雙擊即可運(yùn)行上傳:

運(yùn)行成功后,就可以在Maven倉庫中看到該Jar包,并可以將該jar包引用到項(xiàng)目中去。

六、使用Jar包

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    Docker的鏡像制作方法詳解

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

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

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

    如何給一個(gè)正在運(yùn)行的Docker容器動(dòng)態(tài)添加Volume

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

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

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

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

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

最新評(píng)論

全椒县| 宁南县| 焦作市| 安国市| 财经| 濮阳县| 府谷县| 大田县| 瑞丽市| 杭锦旗| 峨山| 英山县| 江津市| 长春市| 大安市| 石河子市| 长岭县| 镇宁| 屯留县| 奉化市| 区。| 玉门市| 定西市| 东源县| 嘉禾县| 綦江县| 永和县| 阳原县| 湾仔区| 大荔县| 略阳县| 和林格尔县| 平和县| 平潭县| 星座| 广饶县| 陈巴尔虎旗| 芜湖市| 斗六市| 杭州市| 天门市|