开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 13931|回复: 2
收起左侧

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

[复制链接]

结帖率:76% (32/42)
发表于 2018-6-21 13:31:27 | 显示全部楼层 |阅读模式   山东省济宁市
本帖最后由 宇智波·佐助 于 2018-6-22 09:49 编辑

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

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

首先,先介绍一下我的项目结构和发布流程:
项目由java与c#混合开发,使用微服务架构,一共2个子服务,一个win程序,还有eureka服务、网关服务
由于我使用的是springboot构建的项目,为了能够实现自动化发布,我选择适合winsw将我的jar包打包成windows服务 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文件夹中的所有文件全部拷贝到publish\app\Release文件夹中

4、发布到远程服务器
要使用这一步操作,你需要安装Publish over FTP插件并且配置他

到此整个自动发布过程就好了,但是自动部署还没完成,由于是windows操作系统,我没有办法使用Publish over SSH插件来远程执行shell命令,所以,我的解决方案是:
我将所有的操作都封装成了批处理脚本,这个脚本在自动发布的时候就已经带到了远程服务器中,我只需运行一下run.bat或者stop.bat即可完成所有服务和程序的安装卸载与运行停止
但我不想每次都连接服务器去发布,因为是测试环境,每次都连服务器发布很麻烦,所以我写了一个socket程序监听命令,收到指令后自动调用bat脚本

到此,全部结束!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
结帖率:0% (0/1)
发表于 2024-6-18 20:21:14 | 显示全部楼层   湖北省宜昌市
下载都玩这么高端了么?
回复 支持 反对

使用道具 举报

发表于 2023-6-6 14:06:34 | 显示全部楼层   湖北省武汉市
感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表