Jenkins流水线将制品发布到Nexus存储库
本指南的目的是创建一个工作流,我们可以在该工作流中通过Maven和CI服务器来构建,存储,管理和监视已编译的制品。
(资料图片)
在本指南中,我们将使用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/initialAdminPasswordb5102c8d9fa245dbb0b8da03f504d3a5
请按照指导的步骤完成配置。安全保存用户名和密码,以备将来使用。
安装Nexus制品库
Nexus是一个存储库管理器,可让您存储和检索工件。它使您能够将构建的工件托管在私有且安全的存储库中。
您始终可以使用以下命令获取Nexus Docker映像:
$ docker pull sonatype/nexus3Using 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:要创建新用户,请转到 信息中心>服务器管理员和配置>用户>创建用户。选择 恰好是默认领域的本地用户类型:
在“ 创建用户”页面中。
ID:输入所需的ID;在我们的案例中,它是Jenkins用户。名字:输入所需的名字;就我们而言,就是Jenkins。姓:输入所需的名字;在我们的例子中是用户。电子邮件:输入您的电子邮件地址。状态:从下拉菜单中选择 有效。角色:确保将nx-admin角色授予 用户。至此,我们完成了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。Git项目:在阶段阶段,我们使用了https://github.com/javaee/cargotracker。在完成管道设置的过程中,是时候开始Build我们的项目了。转到JenkinsNexus项目作业页面,然后单击立即构建。由于这是您的第一个构建,因此将需要一些时间。
一旦构建成功,在Jenkins控制台输出中,您将看到类似以下内容:
而在Nexus Repository Manager中,您会看到类似以下内容:
对于任何组织而言,一种系统地分发项目工件的方法都是至关重要的。借助Jenkins Pipeline和Nexus Repository Manager,您可以集中管理制品,从而最终减少了重新生成构建时间以及切换CI工具的工作。
Nexus还可以配置有AWS S3和Google Cloud Storage等云存储服务,从而为您提供了更多的自由度和交付应用程序,而无任何存储麻烦。
标签:
精彩推送
港股概念追踪 | 世界氢能技术大会来袭!氢能及燃料电池行业进入发展快车道(附概念股)
2023世界氢能技术大会(WHTC2023)于5月22-26日在佛山市南海区樵山文化中心举办。
苏丹冲突双方临时停火协议正式生效 喀土穆等地未见大规模冲突-全球热头条
苏丹冲突双方临时停火协议正式生效喀土穆等地未见大规模冲突【苏丹冲突双方临时停火协议正式生效喀土穆等地
新闻快讯
X 关闭
X 关闭
新闻快讯
- Jenkins流水线将制品发布到Nexus存储库
- 比特技术IPO,客户集中度产品依赖度双高,实控人身负上亿元纠纷未决 新视野
- 先退小额再买理财返利?警惕升级版退费诈骗_今日视点
- 世界聚焦:2场打造新阵容,崔康熙重用2将+弃3将,泰山队寻新外援孙准浩不服
- 全球速递!塞尔达传说王国之泪生命鲑鱼怎么获得
- 西藏阿里:“小警务”托起“大民生”
- 观速讯丨2023-2024年度天津森通供热公司采暖费优惠政策
- 新冠治疗板块午后拉升
- 当前消息!安徽省池州市2023-05-26 11:47发布雷电黄色预警
- 长三角地区4月份人民币存款增加5亿元 外币存款减少116亿美元
- 李彦宏:10年后全世界有50%的工作会是提示词工程,百度要做第一个把全部产品重做一遍的公司
- 天天热文:川字纹有什么说法(手掌川字纹代表什么?男女左右说法不同?)
- 上海白癜风哪家医院比较好-男性白癜风的病因是什么?
- 10分钟被骗430万元 “AI诈骗”应被零容忍_环球快讯
- 世界快看点丨塌陷地上长出致富“金草”
- 每日播报!猫画图片_猫画
- 金鹰女神有哪些图片_金鹰女神有哪些
- 蜜蜂是怎么把花粉转化成蜂蜜的
- 每日热点:上证指数跌近1%,大金融、中字头、人工智能概念跌幅靠前
- 微软背刺索尼:提前曝光12款游戏大作|世界新动态
- Pezzetti 咖啡机使用说明
- 苹果酸是什么东西_关于苹果酸的介绍
- 甲状腺癌不可以吃什么食物_甲状腺癌哪些不能吃-全球微资讯
- 当兵心理测试题目自测_当兵心理测试题目
- 深圳启动医疗器械原材料及零部件国产标准化项目,推动国产部件标准化
- 环球简讯:小茶几简约现代创意_小茶几
- 燃气板块涨3.22% 水发燃气涨10.03%居首 速看料
- 世界头条:慧翰股份6月1日深交所首发上会 拟募资7亿元
- 当前通讯!t恤英文怎么读音_t恤英文
- 分类的三种方法_请问有那些分类方法
- 1158万人!今年高校毕业生数量再创历史新高!找工作更难了...
- 成都银行贷款需要什么条件?-环球观点
- 江西一教师挪用91万学杂费炒股,法院:没收违法所得,判刑八个月_即时
- 遴选考试:申论公文写作之把握材料逻辑
- 全球速递!侨乡泉州开通首条中东外贸集装箱航线
- 好地方、好美食,扬州举办第五届中国早茶文化节
- 每日报道:财政部:4月中央政府收入10741亿元 支出11457亿元
- 【世界聚看点】元素周期表怎么背好记(元素周期表怎么背)
- networking events_networking_全球微动态
- 百度搜索AI伙伴开启内测,相关功能完成评估后上线-天天看热讯
- 泰国4月汽车销量同比下滑6.14% 世界速递
- 株洲市四中心理课题获湖南省教育教学研究优秀成果奖_快播
- 星际传奇4在线观看西瓜影音 星际传奇4在线观看
- 超大双存持久续航,oppoa97带来不一样的体验 世界播报
- 2023年义齿市场规模分析:我国义齿市场增长至101亿元_全球消息
- 第二十四个世界海龟日: 保护海龟,你我同行 环球即时
- 英伟达GPU价格大涨4成、交货延长 800G光模块需求大增-世界视点
- 996传奇手游辅助(传奇手游996引擎破解版本) 天天速读
- 信息:AMD RX 7600 显卡官方 PPT 曝光:性能较 RX 6600 提升 29%
- 电暖风机厂家直销_电暖风机|环球快消息