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

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

二、Nexus搭建

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

三、配置倉庫

搭建好后,會有一些默認的倉庫:

maven-central:maven 中央庫,默認從 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 默認為Releases、Snapshots、Central,當然你也可以自己設(shè)置。
hosted:私有倉庫,內(nèi)部項目的發(fā)布倉庫,專門用來存儲我們自己生成的 jar 文件 snapshots:本地項目的快照倉庫
releases: 本地項目發(fā)布的正式版本
proxy:代理類型,從遠程中央倉庫中尋找數(shù)據(jù)的倉庫(可以點擊對應(yīng)的倉庫的Configuration 頁簽下 Remote Storage 屬性的值即被代理的遠程倉庫的路徑),如可配置阿里云 maven 倉庫
central:中央倉庫

3.1 配置加速庫

我們通過上文了解到,Nexus默認會從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/

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

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

配置好Maven的基礎(chǔ)加速庫后,我們就來創(chuàng)建一個團隊內(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腳本來進行。Maven大家應(yīng)該都比較熟了,我這里就用安卓人狂喜的Gradle來演示一下。在build.gradle中編寫如下腳本即可上傳。

方便大佬復制:

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包的坐標寫對后就可以使用:

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

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

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

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

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

相關(guān)文章

  • docker mysql修改root賬號密碼并賦予權(quán)限

    docker mysql修改root賬號密碼并賦予權(quán)限

    本文主要介紹了docker mysql修改root賬號密碼并賦予權(quán)限,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Docker MQTT安裝使用教程

    Docker MQTT安裝使用教程

    今天小編就為大家分享一篇關(guān)于Docker MQTT安裝使用教程,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • MacBookPro下docker的安裝與使用教程

    MacBookPro下docker的安裝與使用教程

    Windows與Linux下關(guān)于docker的安裝使用方法有很多,今天小編這里給大家分享的是MacOS下docker的安裝與簡單使用案例,非常簡單,給有需要的小伙伴參考下
    2017-03-03
  • docker?搭建?vulhub?靶場環(huán)境的詳細過程

    docker?搭建?vulhub?靶場環(huán)境的詳細過程

    Vulhub是一個基于docker和docker-compose的漏洞環(huán)境集合,進入對應(yīng)目錄并執(zhí)行一條語句即可啟動一個全新的漏洞環(huán)境,讓漏洞復現(xiàn)變得更加簡單,讓安全研究者更加專注于漏洞原理本身,這篇文章給大家介紹docker?搭建?vulhub?靶場環(huán)境的過程,感興趣的朋友一起看看吧
    2022-08-08
  • Docker 數(shù)據(jù)卷操作的實現(xiàn)

    Docker 數(shù)據(jù)卷操作的實現(xiàn)

    這篇文章主要介紹了Docker 數(shù)據(jù)卷操作的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • 如何通過Dockerfile 創(chuàng)建 kali-novnc

    如何通過Dockerfile 創(chuàng)建 kali-novnc

    這篇文章主要介紹了如何通過Dockerfile 創(chuàng)建 kali-novnc,在Dockerfile所在目錄運行相關(guān)命令操作即可完成,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • 內(nèi)網(wǎng)環(huán)境下registry搭建步驟詳解

    內(nèi)網(wǎng)環(huán)境下registry搭建步驟詳解

    這篇文章主要為大家介紹了內(nèi)網(wǎng)環(huán)境下的registry搭建步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Docker Compose搭建Redis主從復制環(huán)境的實現(xiàn)步驟

    Docker Compose搭建Redis主從復制環(huán)境的實現(xiàn)步驟

    在Docker中搭建Redis主從架構(gòu)非常方便,下面是一個示例,演示如何使用Docker Compose設(shè)置一個Redis主從復制環(huán)境,文中有詳細的代碼示例,具有一定的參考價值,需要的朋友可以參考下
    2023-09-09
  • Docker安裝Oracle19c史上最全步驟

    Docker安裝Oracle19c史上最全步驟

    本文主要介紹了Docker安裝Oracle19c,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • docker利用dockerfile構(gòu)建鏡像

    docker利用dockerfile構(gòu)建鏡像

    dockerfile是一種用于定義和構(gòu)建docker鏡像的文本文件,由一行行指令和參數(shù)組成,用于描述鏡像的構(gòu)建和配置過程;由基礎(chǔ)映像、軟件包安裝、文件拷貝、環(huán)境變量設(shè)置等組成
    2024-10-10

最新評論