用插件的好处是可以使用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: 'http', repository: 'devops-maven', version: '1.1.1'}}}
[Pipeline] { (Nexus)
[Pipeline] script
[Pipeline] {
[Pipeline] nexusArtifactUploader
Uploading artifact demo-0.0.1-SNAPSHOT.jar started....
GroupId: org.devops
ArtifactId: org.devops
Classifier:
Type: jar
Version: 1.1.1
File: demo-0.0.1-SNAPSHOT.jar
Repository:devops-maven
Uploading: http://139.198.166.235:8082/repository/devops-maven/org/devops/devops-lib/1.1.1/devops-lib-1.1.1.jar
10 % 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 Pipeline
Finished: 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: 'http', 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}")

要发布的时候可以直接下载,要下载用的就是这个链接

最后通过.去获取就行了,而不是通过split。

发布制品


安装Maven Artifact ChoiceListProvider (Nexus)插件

 这个可以以参数的形式展现在Jenkins上面,然后选择生成包

 这样在构建的时候就可以指定发哪个包了

Nexus 05 第二种方式 使用Jenkins Nexus插件上传制品相关推荐

  1. 点击/拖拽两种方式,预览并上传png/jpg/jpeg格式图片

    <template><div class="content"><div class="PictureBox"><img ...

  2. JS一起学02:函数传参、操作属性第二种方式、提取行间事件、循环、this、焦点问题、联动选择、选项卡焦点图

    一.函数传参     1.函数传参:参数就是占位符----函数里定不下来的东西 var a1=function(){ alert(123); }; function a(f){ // 相当于 f=a1 ...

  3. try_catch_异常处理的第二种方式,自己处理异常

    package com.learn.demo02.Exception;import java.io.IOException;/*try...catch:异常处理的第二种方式,自己处理异常格式:try{ ...

  4. Qt|Linux工作笔记-第二种方式读取Linux中top命令(直接读取,非重定向)

    第一种方式的链接如下: https://mp.csdn.net/postedit/84067805 第一种方式是重定向到文件,然后读取, 第二种方式不重定向到文件,直接读取! 利用QProcess的特 ...

  5. 繁易平台直接对接监测点的数据(除MQTT方式外第二种方式)

    繁易平台直接对接监测点的数据(除MQTT方式外第二种方式) 一: 注册开发者秘钥信息 登录繁易平台,点击设置 点击开发者账号 点击添加开发者秘钥: 注意: ​ 添加开发者秘钥后,一定要保存client ...

  6. JavaScript系列-02 HTML嵌入js代码的第二种方式

    javaScript系列 HTML中嵌入js代码的第二种方式 脚本块的方式 文章目录 javaScript系列 前言 一.了解脚本块的方式 1.1运行规则 二.执行原理 1.编写代码 2.效果 总结 ...

  7. iOS Jenkins自动化打包 上传fir、蒲公英、邮件、钉钉提醒

    一.环境配置 注意,本文章是以Jenkins2.263.4为例 1.首先安装Java环境:官网下载地址 2.安装Jenkins 建议下载Jenkins 2.263.4版本,因为最新版本存在login. ...

  8. 实现键盘录入的第二种方式。。。。。

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  9. 瀑布流第二种方式————基于ajax方式

    第二种瀑布流是基于ajax方式工作的.与之前一种形式相比,这种方式可以向后台发送数据, 同时,ajax可以根据数据,每次只取一部分的数据,等滚轮划到底部时,再出发ajax,然后又去一次 models文 ...

最新文章

  1. 【每日学习Mybatis中基础】trim标签使用
  2. java 取pdf表格内容数据_Java 在PDF中添加表格
  3. tfs java开发需要jar_使用Spring框架开发最少需要哪些jar包,依赖jar包有哪些?
  4. -i 可以编译添加多个_大咖说 | 基于 NXP i.MX8 eIQ 环境搭建和编译
  5. 软件开发中部分代码的注解
  6. OAuth2.0学习(1-1)OAuth2.0是什么?
  7. 学习ASP.NET Core Razor 编程系列十三——文件上传功能(一)
  8. golang如何打印float64的整数部分_2020-08-10:如何不用加减乘除求浮点数的2倍值?...
  9. redis springmvc mysql_redis和mysql怎么一起在springmvc里面
  10. 4. Spring 如何通过 XML 文件配置Bean,以及如何获取Bean
  11. method java_解析Java中的Field类和Method类
  12. node 获取表单数据 为空_像声明类型一样写表单——基础功能
  13. caffe 图片数据的转换成lmdb和数据集均值(转)
  14. ASP.NET连接ACCESS数据库web.config内路径最优写法
  15. Mongodb亿级数据量的性能测试zz
  16. 初识 Vue(10)---(计算属性的 setter 和 getter)
  17. 怎么把网页保存成pdf格式-最简单操作
  18. 豆瓣top250html源码,用23行代码爬取豆瓣音乐top250
  19. RTL8188CUS驱动程序编译步骤
  20. 特斯拉神器TeslaMate一键安装,终于来了

热门文章

  1. MBR与GPT分区的区别及使用注意事项(转载)
  2. VMware下载及安装(附带下载地址)
  3. Tomcat优化经验之谈
  4. Mysql删除文件夹中的data文件(删除数据)
  5. 教你小小JAVA爬虫爬到HDU首页(只为学习)
  6. python之有关魔方方法的内容
  7. Python —— 魔方方法
  8. 每日一课 | range()函数用法
  9. 大型生鲜配送企业如何做到快速分拣商品?
  10. word无法显示图像计算机可能没有足够的,Word图片显示不出来怎么办 Word图片显空白的解决办法-电脑教程...