jenkins按版本发布maven项目

时间:2022-05-22 23:48:10

1.先为java这个项目创建三个版本

vim pom.xml
vim src/main/java/com/ghz/testweb/App.java
git add .
git commit -m "second"
git tag -a v1.2 -m 'version 1.2'
git push -u origin master
git push origin v1.2

修改后的pom.xml

jenkins按版本发布maven项目

修改war的输出内容

jenkins按版本发布maven项目

v1.3标签是一样的道理

vim pom.xml
vim src/main/java/com/ghz/testweb/App.java
git add .
git commit -m "third"
git tag -a v1.3 -m 'version 1.3'
git push origin master
git push origin v1.3

gitlab上三个标签的截图

jenkins按版本发布maven项目

2.按版本发布

a.安装git parameter plugin插件

jenkins按版本发布maven项目

b.修改项目配置,勾选<参数化构建过程>后的一系列操作

jenkins按版本发布maven项目

c.创建变量名 version_tag

jenkins按版本发布maven项目

d.在源码管理中将master修改为上面定义的变量,默认是master,即每次构建都是拉取最新的代码,使用变量的方式可以使任务构建更加灵活

jenkins按版本发布maven项目

e.执行shell的语句替换变量

目前的打包规则是:pom.xml中的<artifactId>testweb</artifactId>和<version>v1.4</version>,

这两者的结合,作为war包的命名,如:/var/lib/jenkins/workspace/java-maven/target/testweb-v1.4.jar,所以打标签时的tag和pom.xml中的版本相对应,使任务构建更加清晰.

jenkins按版本发布maven项目

f.选择标签进行发布

jenkins按版本发布maven项目

发布v1.2

jenkins按版本发布maven项目

发布v1.4

jenkins按版本发布maven项目

3.用脚本传参的方式发布

mkdir -p /server/scripts
cd /server/scripts
vim deploy-java.sh
chmod +x deploy-java.sh
ln -s /server/scripts/deploy-java.sh /usr/bin/

脚本内容

jenkins按版本发布maven项目

将所有命令替换成一行

jenkins按版本发布maven项目

构建成功

jenkins按版本发布maven项目

4.解决jenkins无法启动、不让jenkins登录了、publish-over-ssh插件

a.今早起来,访问10.0.0.27:8080,发现jenkins无法访问,到服务器上一看,发现jenkins进程没有起,看了一下启动脚本,JENKINS_LOCKFILE="/var/lock/subsys/jenkins",在停服务的时候要先把锁文件删除,但是关服务器的时候,系统不会帮你删的.所以手动删除了这个文件之后,服务可以正常启动了;

b.之前为了能让jenkins可以登录系统并给他生成密钥对,将/etc/passwd中他的/bin/false改为了/bin/bash,现在尝试将/bin/bash改为/bin/false,重启服务,任务仍可以正常构建;

c.publish-over-ssh插件在我们的实验当中没有用到,今天尝试了一下,用之前给jenkins创建的密钥对去验证很轻松就通过了,等以后用到的时候,再来配置,还是那句话:基础打好了,干什么都事半功倍.可以不配密码,用私钥就能连接成功.

jenkins按版本发布maven项目

连接测试成功

jenkins按版本发布maven项目

d.重启jenkins多显示了两行

shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory

该错误表示getcwd命令无法定位到当前工作目录.一般来说是因为你 cd 到了某个目录之后 rm 了这个目录,这时去执行某些 service 脚本的时候就会报 getcwd 错误.只需要 cd 到任何一个实际存在的目录下在执行命令即可.

jenkins按版本发布maven项目

"经济基础决定上层建筑"这句话不仅适用与宏观,我们本身的生活也遵循这这个规律.

参考博客:https://yq.aliyun.com/articles/485307

马克思-全世界通用的5句话:https://baijiahao.baidu.com/s?id=1614169637974368104

jenkins按版本发布maven项目的更多相关文章

  1. 配置Jenkins 实现自动发布maven项目至weblogic(svn&plus;maven&plus;weblogic12c)

    Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放weblogic的7001端口 Linux(CentOS):firewall-cmd --zone=publ ...

  2. Windows下配置Jenkins 实现自动发布maven项目至tomcat(svn&plus;maven&plus;tomcat)

    Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放tomcat的8080端口 Linux(CentOS):firewall-cmd --zone=public ...

  3. 3&period;发布Maven项目到nexus中

    1.在pom.xml文件中配置需要发布的工厂 如果想把项目发布到nexus中,需要在pom.xml中配置releases和snapshots版本发布的具体repository <distribu ...

  4. Tomcat发布Maven项目遇到异常:java&period;lang&period;OutOfMemoryError&colon; PermGen space

    前言: 本问题出现在tomcat 7发布 web3.0Maven项目的时候出现. 问题阐述: 异常:java.lang.OutOfMemoryError:PermGen space 解决如下: 1.  ...

  5. Gitlab&plus;Jenkins学习之路(八)之发布maven项目及按版本发布

    一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 ...

  6. jenkins&plus;gitlab发布maven项目

    1.简介:什么是Maven Maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架; 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生 ...

  7. 发布Maven项目 nexus

    1.在pom.xml文件中配置需要发布的工厂 如果想把项目发布到nexus中,需要在pom.xml中配置releases和snapshots版本发布的具体repository <distribu ...

  8. Jenkins总结2-部署maven项目

    1. 部署Maven项目 1.1 新建项目 选择新建任务 输入任务名称,并选择构建一个Maven项目.如果你的页面没有看到“构建一个maven项目”,则需要安装Maven Integration插件. ...

  9. 使用Jenkins可持续集成maven项目

    首先下载最新的Jenkins的war包,放在tomcat的webapps的目录下,然后运行,例如: http://121.42.62.45:8080/jenkins/ 然后按照一步步的提示,下载相关的 ...

随机推荐

  1. 切分 Tomcat 的 catalina&period;out 文件,解决日志文件过大的问题

    原文:http://unmi.cc/split-tomcat-catalina-out-file Linux 下使用 cronolog 工具来切分 catalina.out 这里重点介绍这种方法,具体 ...

  2. 如何使用Math对象快速计算数组中的最大值或最小值

    Math 对象下包含 min() 和 max() 方法 用于确定一组数值中的最大值和最小值.这两个方法都可以接收任意多个数值参数. var max = Math.max(1,2,3,4,5,6); c ...

  3. cpu中断

    中断是什么?cpu在中断的时候做了些什么? 答:中断就是中止当前正在执行的工作,而去执行引起中断的事件,当引起中断的事件执行完毕之后,CPU继续执行以前的未执行完的工作. CPU暂时中断当前正在执行的 ...

  4. mysql5&period;5手册读书日记&lpar;2&rpar;

    <?php /* * * MySQL_5.5中文参考手册 485开始 * * mysql> SELECT CASE 1 WHEN 1 THEN 'one' -> WHEN 2 THE ...

  5. 【Android】android中Invalidate和postInvalidate的区别

    Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用. Android提供了Inva ...

  6. ecos内核概览--bakayi译

    http://blog.csdn.net/wangzaiwei2006/article/details/6453423

  7. 设计与实现简单而经常使用的权限系统&lpar;四&rpar;&colon;无需维护level,递归构建树

    第三篇中.我们通过维护节点的深度level,通过迭代全部的节点,仅仅须要一次,就构造了树.  本篇.换一种方式. 优点是:不维护节点的深度level,添加和改动节点时,也不用维护.递归实现,代码比較清 ...

  8. ios导航栏适配

    我们做屏幕导航栏横竖屏适配的时候,会发现top的值多少都有一点的偏移,加了背景色之后从0开始,不加背景色从64开始,解决方法self.extendedLayoutIncludesOpaqueBars ...

  9. 结巴分词和自然语言处理HanLP处理手记

    手记实用系列文章: 1 结巴分词和自然语言处理HanLP处理手记 2 Python中文语料批量预处理手记 3 自然语言处理手记 4 Python中调用自然语言处理工具HanLP手记 5 Python中 ...

  10. url用法

    url中的name用法: 0.定义主rul.py urlpatterns = [ url(r'^sinfors/', include('sinfors.urls', namespace="s ...