您现在的位置是:热点 >>正文
持续集成流水线中的制品管理(Nexus)
热点97102人已围观
简介...
我们可以在该工作流中通过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']], &n集成bsp; credentialsId: '1de05a13-197c-4a72-8c6a-cd330fc45559', groupId: 'com.jenkins', nexusUrl: '192.168.1.200:8081', nexusVersion: 'nexus3', protocol: 'http', &n流水bsp; 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 "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?repositor理(y=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 Checkout(Ne) 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}", &集成nbsp; "${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, 流水 classifier: '', file: file, type: type]], credentialsId: '1de05a13-197c-4a72-8c6a-cd330fc45559', groupId: grou线中pId, nexusUrl: '192.168.1.200:8081', nexusVersion: 'nexus3', protocol: 'http', repository: 'mymavenrepo', version: version }
历史与Nexus相关的主题
Tags:
相关文章
云计算开发实例:Python3移除字符串中的指定位置字符
热点如何在Python3中移除字符串中的指定位置字符,首先给定一个字符串,然后移除指定位置的字符。 实例 执行以上代码,输出结果为: 其他参考方法:...
【热点】
阅读更多美国最大邻里社交平台Nextdoor通过SPAC上市 不惧Facebook挑战
热点新浪科技讯 北京时间7月6日晚间消息,据报道,美国最大的邻里社交平台Nextdoor今日宣布,将通过与一家“特殊目的收购公司”(SPAC,空壳公司)合并的方式上市,为Nextdoor估值约43亿美元。...
【热点】
阅读更多标签: 洪恩 全知识 万词王 李腾
热点云梦级6月1日云梦级消息,洪恩(纽约证券交易所股票代码:IH)("洪恩"或"公司")今日宣布,公司已签署资产转让协议,拟收购全知识及万词王两款产品的相关业务和资产("本次收购"),总对价为人民币9,4...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.ng-slo.si/si/iskanje?cat=114&q=谷歌留痕教程【tg:seogoogle987】,qzr
- https://www.mynextmove.org/find/search?s=谷歌留痕教程【tg:seogoogle987】,l7J
- https://www.tumblr.com/tagged/谷歌留痕教程【tg:seogoogle987】,6SS
- https://www.roberthalf.com/us/en/jobs/all/谷歌留痕教程【tg:seogoogle987】oS2
- https://yokohama-oht.com/?action=CHECK&s=谷歌留痕教程【tg:seogoogle987】,ed4
- https://www.skicheck.at/en/?action=CHECK&s=谷歌留痕教程【tg:seogoogle987】,Avn
- https://www.sensorshop24.de/catalogsearch/result/index/?type=132&q=谷歌留痕教程【tg:seogoogle987】,QzZ
- https://www.jusoen.com/addreng.asp?p1=谷歌留痕教程【tg:seogoogle987】5g0
- https://www.so.com/s?ie=utf-8&src=360sou_home&_re=0&q=谷歌留痕教程【tg:seogoogle987】,bkS
- https://www.u-bourgogne.fr/?cat=117&s=谷歌留痕教程【tg:seogoogle987】,tcs
- https://www.metalmensales.com/?action=QUERY&s=谷歌留痕教程【tg:seogoogle987】,WjK
- https://www.nbm.org/?action=QUERY&s=谷歌留痕教程【tg:seogoogle987】,OuY
- https://www.stormberg.com/no/search?q=谷歌留痕教程【tg:seogoogle987】,yLe
- https://www.woorden.org/spreekwoord.php?woord=谷歌留痕教程【tg:seogoogle987】,nyP
- https://www.kubb-tool.bfs.admin.ch/en/search?action=CHECK&q=谷歌留痕教程【tg:seogoogle987】,c7t
- https://www.flickr.com/photos/tags/谷歌留痕教程【tg:seogoogle987】Pwb
- https://www.urmc.rochester.edu/news/search?q=谷歌留痕教程【tg:seogoogle987】,ix7
- https://www.target.com/s?searchTerm=谷歌留痕教程【tg:seogoogle987】,LvJ
- https://www.nctsn.org/search?cat=191&query=谷歌留痕教程【tg:seogoogle987】,0OO
- https://www.military-history.org/?s=谷歌留痕教程【tg:seogoogle987】,yzY
- https://yscc1986.net/search/谷歌留痕教程【tg:seogoogle987】Ikh
- https://www.shopping.com/search.html?keyword=谷歌留痕教程【tg:seogoogle987】,EOi
- https://www.parl.ca/legisinfo/fr/projets-de-loi?parlsession=all&view=list&keywords=谷歌留痕教程【tg:seogoogle987】,Vrt
- https://www.abbreviations.com/谷歌留痕教程【tg:seogoogle987】r3A
- https://www.youtube.com/hashtag/谷歌留痕教程【tg:seogoogle987】,OHW
- https://www.lechzuers.com/de/search?cat=163&q=谷歌留痕教程【tg:seogoogle987】,8Av
- https://www.sdcard.org/ja/?s=谷歌留痕教程【tg:seogoogle987】,ygV
- https://www.manga-news.com/index.php/recherche/?q=谷歌留痕教程【tg:seogoogle987】,Nmi
- https://www.valuecolleges.com/?action=QUERY&s=谷歌留痕教程【tg:seogoogle987】,Yxp
- https://www.smarty.net/search?q=谷歌留痕教程【tg:seogoogle987】,rwk
- https://www.wikiart.org/pt/Search/谷歌留痕教程【tg:seogoogle987】,Vpc
- https://www.zutari.com/search/谷歌留痕教程【tg:seogoogle987】,K8j
- https://www.universal-music.co.jp/?ID=1sIcckCTeBS8FjzCshAW9w53s8gr691o&s=谷歌留痕教程【tg:seogoogle987】,XW4
- https://www.teacherspayteachers.com/Browse/Search:谷歌留痕教程【tg:seogoogle987】,zjp
- https://www.schenckprocess.com/search?q=谷歌留痕教程【tg:seogoogle987】,IYf
- https://www.kyuhoshi.com/?s=谷歌留痕教程【tg:seogoogle987】,Uxb
- https://www.kingston.gov.uk/site-search/results/?q=谷歌留痕教程【tg:seogoogle987】,yy9
- https://www.mygrandma.com/Items.aspx?search=谷歌留痕教程【tg:seogoogle987】,YcB
- https://store.line.me/search/sticker/ja?q=谷歌留痕教程【tg:seogoogle987】pDn
- https://www.sportbiketracktime.com/index.php?route=product/search&tag=谷歌留痕教程【tg:seogoogle987】,7Bg
- https://www.swanagerailway.co.uk/search?q=谷歌留痕教程【tg:seogoogle987】,mke
- https://www.sic-info.org/vi/?s=谷歌留痕教程【tg:seogoogle987】,Yx5
- https://www.lyrics.com/lyrics/kkk3谷歌留痕教程【tg:seogoogle987】,nKK
- https://www.lneg.pt/?cat=140&s=谷歌留痕教程【tg:seogoogle987】,4qV
- https://www.thedp.com/page/search?q=谷歌留痕教程【tg:seogoogle987】,5kE
- https://www.zutari.com/?s=谷歌留痕教程【tg:seogoogle987】,fKs
- https://www.tailoy.com.pe/catalogsearch/result/?q=谷歌留痕教程【tg:seogoogle987】,Sso
- https://zhidao.baidu.com/index/?action=QUERY&word=谷歌留痕教程【tg:seogoogle987】,Rkq
- https://www.silentiumpc.com/en/search/谷歌留痕教程【tg:seogoogle987】,NOi
- https://www.openstreetmap.org/search?query=谷歌留痕教程【tg:seogoogle987】,BZ5