java 单机接口限流处理方案
315
2022-11-02
Nexus 05 第二种方式 使用Jenkins Nexus插件上传制品
用插件的好处是可以使用DSL生成片段代码,但是代价是后期维护起来是很难受的,比如插件升级。后面可以使用api来实现上传,好处就是不需要依赖这些插件了,减少Jenkins的臃肿。
安装Nexus Artifact Uploader插件、使用片段生成器生成DSL。
插件上传和之前我们手动上传一样本质上还是调用了其API
下面是仓库信息
制品信息
stage('Nexus'){ steps{ script{ nexusArtifactUploader artifacts: [[artifactId: 'devops-lib', classifier: '', file: 'target/demo-0.0.1-SNAPSHOT.jar', type: 'jar']], credentialsId: 'ff93f4bf-9d8c-4fc2-bccd-3e614f10d643', groupId: 'org.devops', nexusUrl: '139.198.166.235:8082', nexusVersion: 'nexus3', protocol: ' repository: 'devops-maven', version: '1.1.1' } } }
[Pipeline] { (Nexus)[Pipeline] script[Pipeline] {[Pipeline] nexusArtifactUploaderUploading artifact demo-0.0.1-SNAPSHOT.jar started....GroupId: org.devopsArtifactId: org.devopsClassifier: Type: jarVersion: 1.1.1File: demo-0.0.1-SNAPSHOT.jarRepository:devops-mavenUploading: % completed (1.7 MB / 17 MB).20 % completed (3.4 MB / 17 MB).30 % completed (5.1 MB / 17 MB).40 % completed (6.8 MB / 17 MB).50 % completed (8.5 MB / 17 MB).60 % completed (10 MB / 17 MB).70 % completed (12 MB / 17 MB).80 % completed (14 MB / 17 MB).90 % completed (15 MB / 17 MB).100 % completed (17 MB / 17 MB).[Pipeline] }[Pipeline] // script[Pipeline] }[Pipeline] // stage[Pipeline] }[Pipeline] // node[Pipeline] End of PipelineFinished: SUCCESS
这里只是上传制品,并不上传pom文件
进行优化, 将参数以变量的方式传递给函数。
最后写到共享库里面
//上传制品def PushArtifacts(repoName,groupId, artifactId, version, type, filePath ){ nexusArtifactUploader artifacts: [[artifactId: "${artifactId}", classifier: '', file: "${filePath}", type: "${type}"]], credentialsId: '111b337e-89a0-4761-9ca3-6ee626ccd7a1', groupId: "${groupId}", nexusUrl: '192.168.1.200:8081', nexusVersion: 'nexus3', protocol: ' repository: "${repoName}", version: "${version}"}
PushArtifacts('devops-maven','org.devops', 'devops-lib', '1.1.2', 'jar', 'target/demo-0.0.1-SNAPSHOT.jar' )
扩展: 可以在Jenkins页面添加参数, 让用户输入后进行发布。
pkg = sh returnStdout: true, script: """ ls target/ | grep -E "jar\$" """ pkg = pkg.trim() println(pkg) // //demo-0.0.1-SNAPSHOT.jar // pkgName = pkg.split("-")[0] // pkgType = pkg.split("\\.")[-1] // println(pkgName + "| " + pkgType) PushArtifacts( "${params.repoName}", "${params.groupId}", pkgName, "${params.pkgVersion}", pkgType, "target/${pkg}" )
要发布的时候可以直接下载,要下载用的就是这个链接
发布制品
安装Maven Artifact ChoiceListProvider (Nexus)插件
这个可以以参数的形式展现在Jenkins上面,然后选择生成包
这样在构建的时候就可以指定发哪个包了
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~