zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    从视频中每隔固定帧进行提取图片
    np.concatenate的超简单理解
    python-OOP(面向对象)
    机器学习中的ground truth
    深度学习网络中backbone是什么意思?
    缓存
    Linux基础命令
    openoffice相关命令
    HTTP协议
    Solr基础
  • 原文地址:https://www.cnblogs.com/fawaikuangtu123/p/10324764.html
Copyright © 2011-2022 走看看