nexus 安装_Jenkins Pipelines将制品发布到Nexus存储库
在本指南中,我們將使用Jenkins作為持續集成服務器,并使用Nexus Repository 作為構建存儲庫。
本指南的目的是創建一個工作流,我們可以在該工作流中通過Maven和CI服務器來構建,存儲,管理和監視已編譯的制品。
在開始之前,請確保您已經啟動并運行了Jenkins。如果您尚未設置Jenkins,請復制以下命令并在啟用Docker的主機上運行它。
docker run -d --name jenkins-ci -p 8080:8080 jenkins/jenkins:lts在本地/遠程計算機上配置了Jenkins容器后,請瀏覽器打開URL:
http:///your-ip-addr:8080在首頁,Jenkins將詢問您管理員密碼,您可以通過在終端中運行以下提到的命令來找到該密碼:
docker exec -i jenkins-ci cat /var/jenkins_home/secrets/initialAdminPassword?b5102c8d9fa245dbb0b8da03f504d3a5請按照指導的步驟完成配置。安全保存用戶名和密碼,以備將來使用。
安裝Nexus制品庫
Nexus是一個存儲庫管理器,可讓您存儲和檢索工件。它使您能夠將構建的工件托管在私有且安全的存儲庫中。
您始終可以使用以下命令獲取Nexus Docker映像:
$ docker pull sonatype/nexus3 Using default tag: latestlatest: Pulling from sonatype/nexus3cb3c77f9bdd8: Pull complete fd8daf2668d1: Pull complete fd1ff82b00e8: Pull complete 2a05f7b573af: Pull complete Digest: sha256:6570855dfbc3eb094fe5cbbacec87aa8b91d16394dab627177e1deeebb5ac8eeStatus: Downloaded newer image for sonatype/nexus3:latestdocker.io/sonatype/nexus3:latest在默認端口8081上運行 sonatype/nexus。請遵循以下命令:
$ docker run -d --name nexus_repo -p 8081:8081 sonatype/nexus3在新創建的Docker容器中啟動Nexus服務通常需要1-2分鐘。如果您希望按照日志查看Nexus是否已啟動并準備就緒,請運行以下命令:
$ docker logs nexus_repo -f在日志中,您會看到一條消息: Started Sonatype Nexus OSS 3.20.1-01 這意味著您的Nexus Repository Manager可以使用了。現在轉到瀏覽器并打開
http://your-ip-addr:8081找到“ 登錄” 選項,如下所示:
默認用戶名是admin,您需要運行以下命令來獲取密碼:
$ docker exec -i nexus_repo cat /nexus-data/admin.password502ace93-5450-4f0d-97d2-9b3b3a88d149就是這樣。您的Nexus Repository Manager可以隨時使用。下一步是創建一個新的存儲庫。
在Nexus中創建存儲庫
在這一步中,您將在Nexus中創建一個Maven托管存儲庫,您的Jenkins將在其中上載“構建”工件。
步驟1: 按照以下步驟創建托管存儲庫,并將其命名 maven-nexus-repo,將在本指南中使用。
從列表中選擇 maven2,如下所示:
步驟2: 在“ 創建存儲庫”頁面上
- 輸入名稱為 maven-nexus-repo
- 在版本策略中,選擇工件的類型。
- 在“ 托管” 部分 下的“ 部署策略”中,選擇“ 允許重新部署”。它將允許您多次部署應用程序。
步驟3: 要創建新用戶,請轉到 信息中心>服務器管理員和配置>用戶>創建用戶。選擇 恰好是默認領域的本地用戶類型:
在“ 創建用戶”頁面中
至此,我們完成了Nexus Repository Manager的設置部分。讓我們轉到Jenkins在此處設置Nexus。
在Jenkins中安裝和配置Nexus插件
在這里,您將為Jenkins中的Nexus安裝并配置一些插件。為此,請轉到Jenkins,然后轉到 信息中心>管理Jenkins>管理插件>可用, 然后搜索并安裝 Nexus Artifact Uploader 插件。
在Jenkins中添加Nexus Repository Manager的用戶憑據。轉到 儀表板>憑證>系統>全局憑證(不受限制),如下所示:
接下來,將Maven設置為托管工具。轉到 儀表板>管理Jenkins>全局工具配置, 然后找到 Maven。在此部分下,單擊“ Maven安裝” 按鈕并添加 Maven,如下所示:
另外,您也可以將Maven二進制文件直接安裝到/var/jenkins_home目錄中的容器中。
創建一條Jenkins流水線
pipeline { agent { label "master" } tools { maven "Maven" } environment { NEXUS_VERSION = "nexus3" NEXUS_PROTOCOL = "http" NEXUS_URL = "you-ip-addr-here:8081" NEXUS_REPOSITORY = "maven-nexus-repo" NEXUS_CREDENTIAL_ID = "nexus-user-credentials" } stages { stage("Clone code from VCS") { steps { script { git 'https://github.com/javaee/cargotracker.git'; } } } stage("Maven Build") { steps { script { sh "mvn package -DskipTests=true" } } } stage("Publish to Nexus Repository Manager") { steps { script { pom = readMavenPom file: "pom.xml"; filesByGlob = findFiles(glob: "target/*.${pom.packaging}"); echo "${filesByGlob[0].name} ${filesByGlob[0].path} ${filesByGlob[0].directory} ${filesByGlob[0].length} ${filesByGlob[0].lastModified}" artifactPath = filesByGlob[0].path; artifactExists = fileExists artifactPath; if(artifactExists) { echo "*** File: ${artifactPath}, group: ${pom.groupId}, packaging: ${pom.packaging}, version ${pom.version}"; nexusArtifactUploader( nexusVersion: NEXUS_VERSION, protocol: NEXUS_PROTOCOL, nexusUrl: NEXUS_URL, groupId: pom.groupId, version: pom.version, repository: NEXUS_REPOSITORY, credentialsId: NEXUS_CREDENTIAL_ID, artifacts: [ [artifactId: pom.artifactId, classifier: '', file: artifactPath, type: pom.packaging], [artifactId: pom.artifactId, classifier: '', file: "pom.xml", type: "pom"] ] ); } else { error "*** File: ${artifactPath}, could not be found"; } } } } }}讓我們逐一分解上述參數:
- NEXUS_VERSION:在這里,我們必須提及Nexus的確切版本,可以是nexus2或nexus3。在我們的情況下,它是的最新版本nexus3。
- NEXUS_PROTOCOL:對于本指南,我們使用了HTTP協議,但是,在正式生產的情況下,您將必須使用HTTPS。
- NEXUS_URL:添加您的IP地址和端口號,以運行Nexus。確保您添加的Nexus實例詳細信息沒有提及協議,例如https或http。
- NEXUS_CREDENTIAL_ID:輸入您先前在Jenkins中創建的用戶ID,在本例中為 nexus-user-credentials。
在完成管道設置的過程中,是時候開始Build我們的項目了。轉到JenkinsNexus項目作業頁面,然后單擊立即構建。由于這是您的第一個構建,因此將需要一些時間。
一旦構建成功,在Jenkins控制臺輸出中,您將看到類似以下內容:
而在Nexus Repository Manager中,您會看到類似以下內容:
結論
對于任何組織而言,一種系統地分發項目工件的方法都是至關重要的。借助Jenkins Pipeline和Nexus Repository Manager,您可以集中管理制品,從而最終減少了重新生成構建時間以及切換CI工具的工作。
Nexus還可以配置有AWS S3和Google Cloud Storage等云存儲服務,從而為您提供了更多的自由度和交付應用程序,而無任何存儲麻煩。
總結
以上是生活随笔為你收集整理的nexus 安装_Jenkins Pipelines将制品发布到Nexus存储库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python报错_python 常见报错
- 下一篇: java 内存泄漏_Java开发者必须知