日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Maven发布到Nexus

發(fā)布時(shí)間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven发布到Nexus 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.概述

在本系列的上一篇文章中,我們將Maven設(shè)置為Nexus部署過程 。 在本文中,我們將在項(xiàng)目的pom以及Jenkins作業(yè)中使用Maven配置發(fā)布過程

2.

為了使Maven能夠發(fā)布到Nexus Repository Server,我們需要通過distributionManagement元素定義存儲(chǔ)庫信息:

<distributionManagement><repository><id>nexus-releases</id><url>http://localhost:8081/nexus/content/repositories/releases</url></repository> </distributionManagement>

托管的Release Repository在Nexus上是開箱即用的,因此無需顯式創(chuàng)建它。

3. Maven

發(fā)布過程將與項(xiàng)目的源代碼管理進(jìn)行交互–這意味著我們首先需要在pom.xml中定義<scm>元素:

<scm><connection>scm:git:https://github.com/user/project.git</connection><url>http://github.com/user/project</url><developerConnection>scm:git:https://github.com/user/project.git</developerConnection> </scm>

或者,使用git協(xié)議:

<scm><connection>scm:git:git@github.com:user/project.git</connection><url>scm:git:git@github.com:user/project.git</url><developerConnection>scm:git:git@github.com:user/project.git</developerConnection> </scm>

4.發(fā)布插件

發(fā)布流程使用的標(biāo)準(zhǔn)Maven插件是maven-release-plugin-此插件的配置最少:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-release-plugin</artifactId><version>2.4.1</version><configuration><tagNameFormat>v@{project.version}</tagNameFormat><autoVersionSubmodules>true</autoVersionSubmodules><releaseProfiles>releases</releaseProfiles></configuration> </plugin>

這里重要的是,releaseProfiles配置實(shí)際上將強(qiáng)制Maven的輪廓-在釋放配置文件-在釋放過程變得活躍。

在此過程中,使用nexus-staging-maven-plugin進(jìn)行部署到nexus-releases Nexus存儲(chǔ)庫:

<profiles><profile><id>releases</id><build><plugins><plugin><groupId>org.sonatype.plugins</groupId><artifactId>nexus-staging-maven-plugin</artifactId><version>1.4.4</version><executions><execution><id>default-deploy</id><phase>deploy</phase><goals><goal>deploy</goal></goals></execution></executions><configuration><serverId>nexus-releases</serverId><nexusUrl>http://localhost:8081/nexus/</nexusUrl><skipStaging>true</skipStaging></configuration></plugin></plugins></build></profile> </profiles>

該插件被配置為在沒有部署機(jī)制的情況下執(zhí)行與之前相同的Release流程,用于Deployment流程( skipStaging = true )。

而且與部署過程類似,“ 釋放到Nexus”是一項(xiàng)安全的操作 -因此,我們將再次使用Nexus的“開箱即用” 部署用戶。

我們還需要在全局settings.xml ( %USER_HOME%/。m2 / settings.xml )中為nexus-releases服務(wù)器配置憑據(jù):

<servers><server><id>nexus-releases</id><username>deployment</username><password>the_pass_for_the_deployment_user</password></server> </servers>

這是完整的配置

5.發(fā)布過程

讓我們將發(fā)布過程分為幾個(gè)小步驟和重點(diǎn)突出的步驟。 當(dāng)項(xiàng)目的當(dāng)前版本為SNAPSHOT版本(例如0.1-SNAPSHOT)時(shí),我們正在執(zhí)行發(fā)布。

5.1。 釋放:干凈

清潔發(fā)行版將:

  • 刪除發(fā)布描述符( release.properties )
  • 刪除所有備份POM文件

5.2。 發(fā)布:準(zhǔn)備

發(fā)布過程的下一部分是準(zhǔn)備發(fā)布 ; 這將:

  • 執(zhí)行一些檢查–不應(yīng)有未提交的更改,項(xiàng)目應(yīng)不依賴于SNAPSHOT依賴項(xiàng)
  • 將pom文件中的項(xiàng)目版本更改為完整發(fā)行版號(刪除SNAPSHOT后綴)–在我們的示例中– 0.1
  • 運(yùn)行項(xiàng)目測試套件
  • 提交并推送更改
  • 根據(jù)此非SNAPSHOT版本代碼創(chuàng)建標(biāo)簽
  • 在pom中增加項(xiàng)目的版本 -在我們的示例中-0.2-SNAPSHOT
  • 提交并推送更改

5.3。 發(fā)布:執(zhí)行

發(fā)布過程的后半部分是執(zhí)行發(fā)布 ; 這將:

  • 來自SCM的結(jié)帳發(fā)布標(biāo)簽
  • 構(gòu)建和部署發(fā)布的代碼

該過程的第二步取決于Prepare步驟的輸出– release.properties 。

6.關(guān)于詹金斯

Jenkins可以通過以下兩種方式之一執(zhí)行發(fā)布過程-它可以使用其自己的發(fā)布插件,也可以僅使用標(biāo)準(zhǔn)的maven作業(yè)運(yùn)行正確的發(fā)布步驟來執(zhí)行發(fā)布。

專注于發(fā)布過程的現(xiàn)有Jenkins插件為:

  • 發(fā)布插件
  • M2發(fā)布插件

但是,由于執(zhí)行發(fā)布的Maven命令非常簡單,因此我們只需定義一個(gè)標(biāo)準(zhǔn)的Jenkins作業(yè)即可執(zhí)行該操作-無需插件。

因此,對于一個(gè)新的Jenkins作業(yè)(構(gòu)建一個(gè)maven2 / 3項(xiàng)目)–我們將定義2個(gè)String參數(shù): releaseVersion = 0.1和developmentVersion = 0.2-SNAPSHOT 。

在“ 構(gòu)建配置”部分,我們只需配置以下Maven命令即可運(yùn)行:

release:clean release:prepare release:perform -DreleaseVersion=${releaseVersion} -DdevelopmentVersion=${developmentVersion}

運(yùn)行參數(shù)化作業(yè)時(shí),Jenkins將提示用戶為這些參數(shù)指定值-因此,每次運(yùn)行作業(yè)時(shí),我們都需要為releaseVersion和developmentVersion填寫正確的值。

另外,值得使用Workspace Cleanup插件并選中此構(gòu)建的“ 在構(gòu)建開始之前刪除工作區(qū)”選項(xiàng)。 但是請記住,發(fā)行版的執(zhí)行步驟必須由與prepare相同的命令運(yùn)行 步驟–這是因?yàn)楹竺娴?strong>執(zhí)行步驟將使用prepare準(zhǔn)備創(chuàng)建的release.properties文件。 這意味著我們不能讓Jenkins Job運(yùn)行準(zhǔn)備和另一個(gè)運(yùn)行的Perform

7.結(jié)論

本文介紹了如何在有或沒有Jenkins的情況下發(fā)布Maven項(xiàng)目的過程。 與Deployment類似,此過程使用nexus-staging-maven-plugin與Nexus進(jìn)行交互,并專注于git項(xiàng)目。

參考:我們的JCG合作伙伴 Eugen Paraschiv在baeldung博客上向Nexus發(fā)布的Maven 。

翻譯自: https://www.javacodegeeks.com/2013/05/maven-release-to-nexus.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的Maven发布到Nexus的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。