jenkins按版本发布maven项目
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