• jenkins+windows+springboot+.net项目自动化部署图文教程


    之前一直在linux中使用jenkins部署程序,正好现在的项目包括了winfrom程序,所以需要部署到windows系统中

    jenkins官网:https://jenkins.io/

    下载之后运行jenkins.msi即可傻瓜化安装,这里不再重复演示安装过程,如果遇到安装问题请自行百度。

    首先,先介绍一下我的项目结构和发布流程:

    项目由java与c#混合开发,使用微服务架构,一共2个子服务,一个win程序,还有eureka服务、网关服务

    由于我使用的是springboot构建的项目,为了能够实现自动化发布,我选择适合winsw将我的jar包打包成windows服务 https://github.com/kohsuke/winsw

    其中exe是使用.net 4.6开发的,为了能够让jenkins自动构建,我选择使用MSBuild来编译.net项目

    1、创建一个新的认证

    2、新建一个自由风格的项目

    3、配置项目

    这里我使用的GitHub来作为代码仓库,关于SVN在网上也有教程,可根据自己实际情况配置

    要使用GitHub你需要先安装Github Plugin插件,不过新版本的jenkins默认已经给安装好了,只需配置一下本地的git.exe路径,注意要cmd文件夹下的git.exe

    下面的GitHub hook trigger for GITScm polling是新版本jenkins的选项,以前jenkins是叫另外一个名字,反正带有GitHub关键词你选中就行

    因为我是在windows系统中部署,所以使用的是批处理脚本,下面被遮挡是我项目的具体路径,因不想公布所以遮挡住

    在批处理中我首先做了这么几件事:

    1、jenkins从github上拉取项目源代码

    2、判断本地工作空间是否存在publish文件夹(用于存放编译好的程序以及脚本)

      如果存在,首先调用stop脚本强制停止所有占用端口的程序,然后依次关闭对应的windows服务,最后把publish文件夹里的内容全部清空

      ps:先强制关闭是有原因的,因为程序被占用,你后面的清空操作不会成功的

      如果不存在,新建publish文件夹,将所有mvn clean package打包的jar文件从target目录拷贝到publish文件夹

    3、调用MSBuild命令编译.sln解决方案

      /t:Rebuild
      /property:Configuration=Release
      /property:TargetFrameworkVersion=v4.6

        第一行是指的重新构建解决方案

      第二行是指的此次编译时Release方式而不是Debug方式

      第三行是指的使用Framework 4.6来编译项目

    当MSBuild编译好项目之后, 把bin/Release文件夹中的所有文件全部拷贝到publishappRelease文件夹中

    4、发布到远程服务器

    要使用这一步操作,你需要安装Publish over FTP插件并且配置他

    到此整个自动发布过程就好了,但是自动部署还没完成,由于是windows操作系统,我没有办法使用Publish over SSH插件来远程执行shell命令,所以,我的解决方案是:

    我将所有的操作都封装成了批处理脚本,这个脚本在自动发布的时候就已经带到了远程服务器中,我只需运行一下run.bat或者stop.bat即可完成所有服务和程序的安装卸载与运行停止

    但我不想每次都连接服务器去发布,因为是测试环境,每次都连服务器发布很麻烦,所以我写了一个socket程序监听命令,收到指令后自动调用bat脚本

    到此,全部结束!

  • 相关阅读:
    万网中备份数据操作
    《C++ Primer Plus》学习笔记3
    Redhat Linux 下安装Oracle 11g R2
    Android-shareSDK
    jQuery的AJax异步訪问
    swift语言初见
    Num 36 : ZOJ 2100 [ 深度优先搜索算法 ] [ 回溯 ]
    一个点的经度和纬度,以这个点为圆心,1000米为半径,最大的经度和纬度,最小的经度和纬度
    [Swift]LeetCode227. 基本计算器 II | Basic Calculator II
    [Swift]LeetCode225. 用队列实现栈 | Implement Stack using Queues
  • 原文地址:https://www.cnblogs.com/renhongwei/p/9208529.html
Copyright © 2020-2023  润新知