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项目的更多相关文章

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

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

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

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

  3. 3.发布Maven项目到nexus中

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

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

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

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

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

  6. jenkins+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. 第3-5课 填充左侧菜单/品牌的添加 Thinkphp5商城第四季

    目录 左侧菜单的填充 品牌的添加 form标签里要加上method="post" enctype="multipart/form-data" form标签里如果 ...

  2. Python中的可迭代对象,迭代器与生成器

    先来看一张概览图,关于容器(container).可迭代对象(Iterable).迭代器(iterator).生成器(generator). 一.容器(container) 容器就是一个用来存储多个元 ...

  3. guava笔记

    ​guava是在原先google-collection 的基础上发展过来的,是一个比较优秀的外部开源包,最近项目中使用的比较多,列举一些点.刚刚接触就被guava吸引了... ​    ​这个是gua ...

  4. python并发编程之线程(创建线程,锁(死锁现象,递归锁),GIL锁)

    什么是线程 进程:资源分配单位 线程:cpu执行单位(实体),每一个py文件中就是一个进程,一个进程中至少有一个线程 线程的两种创建方式: 一 from threading import Thread ...

  5. python数据类型之元组(tuple)

    元组是python的基础类型之一,是有序的. 元组是不可变的,一旦创建便不能再修改,所以叫只读列表. name = ('alex', 'jack') name[0] = 'mark' # TypeEr ...

  6. Three displays CodeForces - 987C (dp)

    C. Three displays time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  7. re--参考手册

    表达式全集 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符.例如,“n”匹配字符“n”.“\n”匹配一个换行符.串行“\\”匹配“\”而“\(”则匹 ...

  8. PHP GD库---之微信朋友圈9张图

    $item_pic = "img/item.jpg"; list($width, $height) = getimagesize($item_pic); $item_pic = i ...

  9. python基础学习笔记——反射

    对编程语言比较熟悉的朋友,应该知道“反射”这个机制.Python作为一门动态语言,当然不会缺少这一重要功能.然而,在网络上却很少见到有详细或者深刻的剖析论文.下面结合一个web路由的实例来阐述pyth ...

  10. 多实例设置本地IP访问sql server 数据库

    我们本地有时候有多个数据库版本(^_^..别说了都是泪),都是为了兼容不同版本的数据而安装的! 最近我们需要用IP来访问,就有了这一段折腾的历程. 上图片为我安装的三个不同的版本,一个为sql ser ...