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
修改war的输出内容
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上三个标签的截图
2.按版本发布
a.安装git parameter plugin插件
b.修改项目配置,勾选<参数化构建过程>后的一系列操作
c.创建变量名 version_tag
d.在源码管理中将master修改为上面定义的变量,默认是master,即每次构建都是拉取最新的代码,使用变量的方式可以使任务构建更加灵活
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中的版本相对应,使任务构建更加清晰.
f.选择标签进行发布
发布v1.2
发布v1.4
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/
脚本内容
将所有命令替换成一行
构建成功
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创建的密钥对去验证很轻松就通过了,等以后用到的时候,再来配置,还是那句话:基础打好了,干什么都事半功倍.可以不配密码,用私钥就能连接成功.
连接测试成功
d.重启jenkins多显示了两行
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
该错误表示getcwd命令无法定位到当前工作目录.一般来说是因为你 cd 到了某个目录之后 rm 了这个目录,这时去执行某些 service 脚本的时候就会报 getcwd 错误.只需要 cd 到任何一个实际存在的目录下在执行命令即可.
"经济基础决定上层建筑"这句话不仅适用与宏观,我们本身的生活也遵循这这个规律.
参考博客:https://yq.aliyun.com/articles/485307
马克思-全世界通用的5句话:https://baijiahao.baidu.com/s?id=1614169637974368104
jenkins按版本发布maven项目的更多相关文章
-
配置Jenkins 实现自动发布maven项目至weblogic(svn+maven+weblogic12c)
Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放weblogic的7001端口 Linux(CentOS):firewall-cmd --zone=publ ...
-
Windows下配置Jenkins 实现自动发布maven项目至tomcat(svn+maven+tomcat)
Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放tomcat的8080端口 Linux(CentOS):firewall-cmd --zone=public ...
-
3.发布Maven项目到nexus中
1.在pom.xml文件中配置需要发布的工厂 如果想把项目发布到nexus中,需要在pom.xml中配置releases和snapshots版本发布的具体repository <distribu ...
-
Tomcat发布Maven项目遇到异常:java.lang.OutOfMemoryError: PermGen space
前言: 本问题出现在tomcat 7发布 web3.0Maven项目的时候出现. 问题阐述: 异常:java.lang.OutOfMemoryError:PermGen space 解决如下: 1. ...
-
Gitlab+Jenkins学习之路(八)之发布maven项目及按版本发布
一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 ...
-
jenkins+gitlab发布maven项目
1.简介:什么是Maven Maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架; 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生 ...
-
发布Maven项目 nexus
1.在pom.xml文件中配置需要发布的工厂 如果想把项目发布到nexus中,需要在pom.xml中配置releases和snapshots版本发布的具体repository <distribu ...
-
Jenkins总结2-部署maven项目
1. 部署Maven项目 1.1 新建项目 选择新建任务 输入任务名称,并选择构建一个Maven项目.如果你的页面没有看到“构建一个maven项目”,则需要安装Maven Integration插件. ...
-
使用Jenkins可持续集成maven项目
首先下载最新的Jenkins的war包,放在tomcat的webapps的目录下,然后运行,例如: http://121.42.62.45:8080/jenkins/ 然后按照一步步的提示,下载相关的 ...
随机推荐
-
切分 Tomcat 的 catalina.out 文件,解决日志文件过大的问题
原文:http://unmi.cc/split-tomcat-catalina-out-file Linux 下使用 cronolog 工具来切分 catalina.out 这里重点介绍这种方法,具体 ...
-
如何使用Math对象快速计算数组中的最大值或最小值
Math 对象下包含 min() 和 max() 方法 用于确定一组数值中的最大值和最小值.这两个方法都可以接收任意多个数值参数. var max = Math.max(1,2,3,4,5,6); c ...
-
cpu中断
中断是什么?cpu在中断的时候做了些什么? 答:中断就是中止当前正在执行的工作,而去执行引起中断的事件,当引起中断的事件执行完毕之后,CPU继续执行以前的未执行完的工作. CPU暂时中断当前正在执行的 ...
-
mysql5.5手册读书日记(2)
<?php /* * * MySQL_5.5中文参考手册 485开始 * * mysql> SELECT CASE 1 WHEN 1 THEN 'one' -> WHEN 2 THE ...
-
【Android】android中Invalidate和postInvalidate的区别
Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用. Android提供了Inva ...
-
ecos内核概览--bakayi译
http://blog.csdn.net/wangzaiwei2006/article/details/6453423
-
设计与实现简单而经常使用的权限系统(四):无需维护level,递归构建树
第三篇中.我们通过维护节点的深度level,通过迭代全部的节点,仅仅须要一次,就构造了树. 本篇.换一种方式. 优点是:不维护节点的深度level,添加和改动节点时,也不用维护.递归实现,代码比較清 ...
-
ios导航栏适配
我们做屏幕导航栏横竖屏适配的时候,会发现top的值多少都有一点的偏移,加了背景色之后从0开始,不加背景色从64开始,解决方法self.extendedLayoutIncludesOpaqueBars ...
-
结巴分词和自然语言处理HanLP处理手记
手记实用系列文章: 1 结巴分词和自然语言处理HanLP处理手记 2 Python中文语料批量预处理手记 3 自然语言处理手记 4 Python中调用自然语言处理工具HanLP手记 5 Python中 ...
-
url用法
url中的name用法: 0.定义主rul.py urlpatterns = [ url(r'^sinfors/', include('sinfors.urls', namespace="s ...