持续集成流水线中的制品管理(Nexus)
我们可以在该工作流中通过Maven和CI服务器来构建,存储,管理已编译完成的制品。
Nexus是一个存储库管理器,可存储和检索制品。它使您能够将构建的制品托管在私有且安全的存储库中。默认开发同学在进行开发的时候会使用一些包管理工具,例如:maven、ant、gradle这些都是常见项目编译构建工具 。这些工具可以理解为是一个命令行工具, 本身不会存储任何依赖包,而是通过公网官方的仓库中下载当前项目构建所需要的包。(内网的速度要比公网快,这会直接影响管道的构建速度)
制品上传 NexusUI页面
Nexus的UI中提供制品上传的功能, 导航Upload, 选择要上传的目标仓库。 最后填写仓库中包的坐标和包信息。
使用Maven工具
一般仓库都是需要认证后才能上传的, 所以首先需要在maven的配置文件中(settings.xml)填写仓库的认证信息。
mymaven admin admin123
使用mvn deploy 命令上传发布制品,命令参数与格式:
mvn deploy:deploy-file -DgroupId=xxxxxx pom中的groupId -DartifactId=xxxxxx pom中的artifactId -Dversion=xxxxxx pom中的版本号version -Dpackaging=xxxxxx pom中打包方式 -Dfile=xxxxxx 本地文件 -Durl=xxxxxx 仓库url -DrepositoryId=xxxxxx 对应的是setting.xml(认证)
如果此时包已经有pom.xml 文件描述, 可以直接通过pom.xml文件进行上传:
mvn deploy:deploy-file -DgeneratePom=false -DrepositoryId=mymaven -Durl=http://192.168.1.200:8081/repos持续itory/mymavenrepo -DpomFile=pom.xml -Dfile=target/demo-0.0.1-SNAPSHOT.jar 使用Jenkins插件
安装Nexus Artifact Uploader插件、使用片段生成器生成DSL。
nexusArtifactUploader artifacts: [[artifactId: 'devopstest', classifier: '', file: 'target/demo-0.0.1-SNAPSHOT.jar', type: 'jar']], 集成 credentialsId: '1de05a13-197c-4a72-8c6a-cd330fc45559', groupId: 'com.jenkins', nexusUrl: '192.168.1.200:8081', nexusVersion: 'nexus3', protocol: 'http', &流水nbsp; repository: 'mymavenrepo', version: '1.1.2'
扩展: 如果需要经常上传制品, 我们最后将其封装在一个函数中,便于复用。
//NexusUploadByPlugin('devops-test', 'target/demo-0.0.1-SNAPSHOT.jar', 'jar', 'com.jenkins','1.1.2') def NexusUploadByPlugin(artifactId, file, type, groupId,version){ nexusArtifactUploader artifacts: [[artifactId: artifactId, classifier: '', &nbs线中p; file: file, type: type]], credentialsId: '1de05a13-197c-4a72-8c6a-cd330fc45559', groupId: groupId, nexusUrl: '192.168.1.200:8081',  的制; nexusVersion: 'nexus3', protocol: 'http', repository: 'mymavenrepo', version: version } 使用Nexus API
经过调试,整理如下类型文件上传的接口:
##PNG curl -X POST "http://192.168.1.200:8081/service/rest/v1/components?repository=myrepo" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "raw.directory=/tmp" -F "raw.asset1=@默认标题_自定义px_2020-10-01-0.png;type=image/png" -F&nb品管sp;"raw.asset1.filename=默认标题_自定义px_2020-10-01-0.png" ## tar.gz & ZIP curl -X POST "http://192.168.1.200:8081/service/rest/v1/components?repository=myrepo" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "raw.directory=/tmp" -F "[email protected];type=application/x-gzip" -F "raw.asset1.filename=aaa.tar.gz" curl -X POST "http://192.168.1.200:8081/service/rest/v1/components?repository=myrepo" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "raw.directory=/tmp" -F "raw.asset1=@waypoint_0.1.5_linux_amd64.zip;type=application/x-gzip" -F "raw.asset1.filename=waypoint_0.1.5_linux_amd64.zip" ## Jar file curl -X POST "http://192.168.1.200:8081/service/rest/v1/components理(?repository=myrepo" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "raw.directory=/tmp" -F "[email protected];type=application/java-archive" -F "raw.asset1.filename=aopalliance-1.0.jar" 下载制品 cURL curl -u admin:admin123 http://192.168.1.200:8081/repository/anyops/com/anyops/a nyops-devops-service/1.1.1/anyops-devops-service-1.1.1.jar -o anyops-devops-service-1.1.1.jar Wget wget --http-user=admin --http-passwd=admin123 http://192.168.1.200:8081/repos itory/anyops/com/anyops/anyops-devops-service/1.1.1/anyops-devops-service-1.1.1.jar 案例: 配置制品上传Pipeline
其实我们可以参考Nexus的UI页面, 使用Jenkins来做一个用于上传制品包的流水线作业:
srcUrl 指的是源码包的源码/包的仓库; branchName 源码包仓库的分支; groupId、artifactid、 version maven类型仓库的坐标; type 包类型;
这个Jenkinsfile包含4个阶段, 分别是下载代码、代码编译、单元测试、上传制品。
@Library("mylib@main") _ import org.devops.* def checkout = new NeCheckout() def build = new Build() def unittest = new UnitTest() def sonar = new Sonar() pipeline { agent { label "build" } options { skipDefaultCheckout true } stages{ stage("Checkout"){ steps{ script { println("GetCode") &xunbsp; checkout.GetCode("${env.srcUrl}", "${env.branchName}") } } } stage("Build"){ steps{ script{ println("Build") sh "mvn clean package " } s); } } stage("UnitTest"){ steps{ script{ unittest.CodeTest("${env.buildTool}") } } } stage("Upload"){ steps{ &持续nbsp; script{ NexusUploadByPlugin("${env.artifactId}", 'target/demo-0.0.1-SNAPSHOT.jar', "${env.type}", &n集成bsp; "${env.groupId}", "${env.version}") } } } } } //NexusUploadByPlugin('devops-test', 'target/demo-0.0.1-SNAPSHOT.jar', 'jar', 'com.jenkins','1.1.2') def NexusUploadByPlugin(artifactId, file, type, groupId,version){ nexusArtifactUploader artifacts: [[artifactId: artifactId, &nb流水sp; classifier: '', file: file, type: type]], credentialsId: '1de05a13-197c-4a72-8c6a-cd330fc45559', groupId: g线中roupId, nexusUrl: '192.168.1.200:8081', nexusVersion: 'nexus3', protocol: 'http', repository: 'mymavenrepo', version: version }
历史与Nexus相关的主题
-
标签: 拼多多 美团 京东 抖音标签: 空中客车 A220 A320系列 A350标签: 市场监管总局 广告监管 提示性用语 绝对化用语谷歌CEO皮查伊就AI研究员离职一事向员工道歉kimi-k2-turbo-preview模型输出速度已提升至每秒 60 Tokens标签: 康迪科技 Rawrr 宁德时代 智能机器人标签: BuzzFeed 拜伦·艾伦 AllenMediaGroup 乔纳·佩雷蒂标签: HappyHorse1.0 阿里巴巴ATH 千问App 阿里云百炼标签: HappyHorse1.0 阿里巴巴ATH 千问App 阿里云百炼谷歌 Workspace 推出 AI 助手,助力办公效率提升
- ·标签: 张雪峰 峰学蔚来 心源性猝死 苏州工业园区
- ·科技巨头又一个新战场:机器人时代正在开启
- ·标签: 比亚迪 刀片电池 天神之眼 仰望
- ·云安全日报210104:Debian InfluxDB数据库发现身份验证绕过漏洞,需要尽快升级
- ·Grokipedia滑铁卢后,AI百科全书SciencePedia横空出世!用“知识图谱+长思维链”重构科学学习
- ·mimik Technology与IBM合作开发基于AI的工作流程解决方案
- ·如何使用Power BI提取数据的真正价值?
- ·Facebook、Instagram和WhatsApp宕机:许多用户无法进入
- ·中国云计算战争:外资云落寞简史
- ·标签: 苹果 Q.ai AirPods Vision Pro
- ·标签: 小米 华为鸿蒙 比亚迪 罗福莉
- ·消息称去年全球IT支出超过5万亿美元 数据中心系统支出大幅增加
- ·混元推出国内首个交互式AI播客,用户可随时提问
- ·标签: 海立股份 海立马瑞利 电动压缩机 转子式压缩机
- ·新模型 CoMPaSS-FLUX.1:提升Flux文本到图像生成的空间理解能力
- ·云安全日报210225:IBM消息传递网关发现执行任意代码漏洞,需要尽快升级
- ·https://www.dba.dk/soeg/?soeg=谷歌留痕技术教程-教程要点与实践【tg:seogoogle987】xqx
- ·https://www.xbiao.com/search/index?tpf&wd=谷歌留痕技术教程-教程要点与实践【tg:seogoogle987】,olJ
- ·https://xn--lgernevedlystskoven-lxb.dk/search/谷歌留痕技术教程-教程要点与实践【tg:seogoogle987】,fuG
- ·https://www.prattlibrary.org/search?q=谷歌留痕技术教程-教程要点与实践【tg:seogoogle987】,9Kx
- ·https://www.southmeadows.co.uk/2019/07/?s=谷歌留痕技术教程-教程要点与实践【tg:seogoogle987】,1ET
- ·https://www.target.com/s?searchTerm=谷歌留痕技术教程-教程要点与实践【tg:seogoogle987】,Iph
- ·https://www.nonsolocap.it/cap?action=SEARCH&k=谷歌留痕技术教程-教程要点与实践【tg:seogoogle987】,CTw
- ·https://www.partilerdunyasi.com/index.php?route=product/search&tag=谷歌留痕技术教程-教程要点与实践【tg:seogoogle987】,wnF
- ·https://www.zutari.com/?s=谷歌留痕技术教程-教程要点与实践【tg:seogoogle987】,7CC
- ·https://www.toy-people.com/?s=谷歌留痕技术教程-教程要点与实践【tg:seogoogle987】,z6A
- ·云计算核心技术Docker教程:Docker集群.将节点添加到群
- ·云计算核心技术Docker教程:docker-compose环境变量
- ·网易有道文档翻译功能免费开放,搭载“子曰”教育大模型提升多语种交流效率
- ·云计算核心技术Docker教程:Docker 守护进程dockerd运行多个守护程序
- ·阿里腾讯争投DeepSeek推动估值冲刺200亿美元,DeepSeek v4与混元3.0发布在即
- ·标签: 尚界 Z7 小摩互娱 尚界汽车
- ·夏威夷大学全力推动人工智能系统化发展
- ·标签: 小米 REDMI K90ProMax Turbo5
- ·鑻辩壒灏旀棗涓婱obileye鍦ㄧ航绾︽祴璇曡嚜鍔ㄩ┚椹舵苯杞�
- ·国内 AI 战场新王诞生!文心 X1.1 荣登大模型测评榜首
