<address id="nhfpd"></address>

                <sub id="nhfpd"></sub>

                  jenkins在windows上自动化部署.Net(.Net Core)项目

                  前言

                    什么是持续集成呢?Continuous integrationCI)。持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

                    如果没有持续集成会有哪一些问题呢?模块项目接口部署不及时,接口不通。每次需要手动打包最新的代码进行部署、发布代码、线上部署都是纯手工。容易出错。浪费时间。

                    现在加上持续集成解决的问题呢?项目构建自动化、集成的详细信息及历史记录的记录、使用统一的管理、固定规定的部署流程、每天至少集成一次。

                  安装

                   

                    这里我采用的是使用Tomcat配合jenkins一起使用的来达成持续集成的目的。

                    一、安装Tomcat

                      从官网下载Tomcat。下载地址:http://tomcat.apache.org/

                   分享图片

                   

                   

                   

                      这里我选择的是32-bit/64-bit Windows Service Installer (pgpsha512)这个版本。然后依次安装就可以了。

                  接下来配置环境变量:

                  一、修改设置:CLASSPATH:(.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%)。注意是第一个符号点!!

                  二、新增设置:CATALINA_HOME:(D:\tool\apache-tomcat-7.0.57)括号内为路径名。

                  三、修改设置:path:(;%JAVA_HOME%;%JRE_HOME%\jre\bin)若以前配置java环境时配置过则不要再次配置。

                       安装就差不多完成了,我们在浏览器输入http://localhost:8080/来看看是否出现以下页面,出现了的话就说明安装成功了。

                   

                   分享图片

                   

                   

                   

                    二、安装JDK

                      安装JDK可以查阅这篇文章——https://www.runoob.com/java/java-environment-setup.html

                    三、安装Jenkins

                    一切准备就绪之后,就开始安装jenkins了,下载地址:https://jenkins.io/download/前往地址下载jenkins的 war包。然后将war包放置在前面安装的Tomcat的目录之下(C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps——我的地址是这个)。

                  然后在浏览器中输入http://localhost:8080/jenkins/访问,安装成功的话就会出现jenkins的界面

                  分享图片

                   

                   

                   

                  这里根据提示我们找到目录之下就可以获取密码了。接下来会出现插件安装的一个选择,新手直接选择新手入门推荐安装就好了。

                   

                   分享图片

                   

                   

                   

                   

                  这里有时会出现安装失败或者链接失败的情况,多试几次就好了。一般是网络的问题。

                    分享图片

                   

                   

                   

                   

                  创建管理员用户之后就可以正式开始配置jenkins了。

                  配置

                  一、插件安装

                    这里需要安装暂且有三个插件,一个是MSBuild Plugin、一个是 Publish Over SSH、一个是Email Extension Plugin。前者是用来作为编译的插件,后者是用来作为连接服务器的插件、最后一个则是用来配置邮件发送的插件了。

                    分享图片

                  分享图片

                   分享图片

                   

                  二、邮箱配置

                    进入系统设置,正式开始配置邮件发送的配置。

                   分享图片

                   

                   

                   

                    首先找到Jenkins Location设置系统管理员的邮件地址。

                   分享图片

                   

                   

                   

                    然后找到Extended E-mail Notification设置,这里就可以开始设置邮件的发送配置了。这里我采用的是qq邮箱的配置。 

                  分享图片

                   

                   

                  分享图片

                   

                   

                  分享图片

                   

                   

                   分享图片

                   

                   

                  SMTP server——SMTP 服务器的配置

                  Default user E-mail suffix——默认电子邮件的后缀

                  User Name——这里设置的是发件人信息([email protected]在这里就输入12345678

                  Password——这里不是填写密码,这里输入的是开通SMTP 的授权码

                  SMTP port——SMTP 默认端口开启465

                  Default Content Type——邮件内容的格式

                  Default Recipients——默认收件人

                  Default Subject——默认主题

                  Default Content——默认内容

                   

                  邮件通知内容的配置的模板:

                   

                  <!DOCTYPE html>    
                  
                  <html>    
                  
                  <head>    
                  
                  <meta charset="UTF-8">    
                  
                  <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
                  
                  </head>    
                  
                      
                  
                  <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
                  
                      offset="0">    
                  
                      <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
                  
                          <tr>    
                  
                              本邮件由系统自动发出,无需回复!<br/>            
                  
                              各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
                  
                              <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
                  
                          </tr>    
                  
                          <tr>    
                  
                              <td><br />    
                  
                              <b><font color="#0B610B">构建信息</font></b>    
                  
                              <hr size="2" width="100%" align="center" /></td>    
                  
                          </tr>    
                  
                          <tr>    
                  
                              <td>    
                  
                                  <ul>    
                  
                                      <li>项目名称 : ${PROJECT_NAME}</li>    
                  
                                      <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    
                  
                                      <li>触发原因: ${CAUSE}</li>    
                  
                                      <li>构建状态: ${BUILD_STATUS}</li>    
                  
                                      <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                  
                                      <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                  
                                      <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
                  
                                      <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
                  
                                  </ul>    
                  
                   
                  
                  <h4><font color="#0B610B">失败用例</font></h4>
                  
                  <hr size="2" width="100%" />
                  
                  $FAILED_TESTS<br/>
                  
                   
                  
                  <h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
                  
                  <hr size="2" width="100%" />
                  
                  <ul>
                  
                  ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
                  
                  </ul>
                  
                  详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
                  
                   
                  
                              </td>    
                  
                          </tr>    
                  
                      </table>    
                  
                  </body>    
                  
                  </html>

                   

                   

                  三、 Publish over SSH配置

                  接下来我们就开始配置SSH连接服务器配置了。

                   分享图片

                   分享图片

                   

                   

                   

                  按照上面的配置进行设置就可以了。

                  Passphrase——密码或密钥

                  Name——此连接服务的名称

                  Hostname——服务器的地址

                  Username——服务器用户名

                  Remote Directory——传输的远程目录

                  Use password authentication, or use a different key——此选项可另设置其他的密码

                  四、 全局工具配置

                  进入Global Tool Configuration设置全局工具设置,这里首先我们得设置git,这个不设置后面可能就拉取不到代码了。再然后设置MSBuild这个设置就是用来给项目进行编译的。

                   分享图片

                   

                   

                   

                  构建

                  到这里安装和配置都已经结束了。我们可以正式开始构建项目了。这里我们分为对.Net .Net Core项目进行集成。配合使用则是Git进行代码的提交及拉取。

                  这里我们选择开始构建一个自由风格的项目。

                   分享图片

                   

                  然后进行项目描述填写

                   分享图片

                   

                   

                   

                  这里就开始设置源代码管理了。选择git并输入地址。随后点击高级,设置用户名和密码,然后返回此页面选择刚设置的证书即可

                   分享图片

                   

                   

                   

                  然后开始构建触发器,这里我设置的触发器的时间是每分钟轮询是否触发。时间大家可以根据情况而定

                   分享图片

                   

                   

                   

                  这里的构建环境,大家可以视情况而定。

                   分享图片

                   

                   

                   

                  到这里就正式开始构建配置了。这里我选择的是使用MSBuild构建VS项目。

                   分享图片

                  分享图片

                   

                   

                  /t:Rebuild /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=FolderProfile /p:OutputPath=D:\Jenkins_Publish

                   

                  MSBuild Build File——构建的目录(例如我的就填写的C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net\WebApplication1\WebApplication1.csproj) Command Line Arguments——构建的命令 Rebuild ——重新生成 Configuration=Release——生成Release版本 DeployOnBuild=true;PublishProfile=FolderProfile——设置运行部署生成,并且执行FolderProfile目录下的生产目录(FolderProfile文件在Properties目录中) OutputPath——输出路径

                   

                  这里我看开始配置构建完成之后的操作的短信配置了。

                   分享图片

                  分享图片

                  分享图片

                   

                   

                   

                   

                  到这里就已经都配置完成了,我们可以返回主页面开始构建了。

                   分享图片

                   

                   

                   

                  点击立即构建,不一会我们就收到了邮件

                  分享图片

                   

                   

                   

                   

                  到这里我们使用git加上jenkins搭建的.Net 项目持续集成就完成了。那么我们接下来看对于.Net Core项目如何进行持续集成的呢。因为.Net Core 项目可以部署在Linux上,所以下面我们就以Linux作为服务器。在本地进行集成然后发布到Linux。其他的操作都是一样的,主要在构建操作和构建后操作不同。我们下面主要介绍构建操作和构建后操作。

                   分享图片

                   

                   

                   

                  dotnet restore dotnet build dotnet publish -c:Release -r centos.7-x64 --self-contained false   -o C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net_Core\WebApplication2\bin\Release\netcoreapp2.2\centos.7-x64 echo 压缩开始 cd C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net_Core\WebApplication2\bin\Release\netcoreapp2.2 7z a -tzip publish.zip C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net_Core\WebApplication2\bin\Release\netcoreapp2.2\centos.7-x64 echo 压缩结束

                   

                  dotnet restore——还原
                  
                  dotnet build ——构建
                  
                  dotnet publish——发布
                  
                  -c:Release ——Release 版本
                  
                  -r centos.7-x64 ——linux版本
                  
                  --self-contained false ——框架依赖
                  
                  -o D:\Jenkins_CorePublish ——发布文件到此目录下

                   

                   

                  后面增加了一个压缩命令,将发布文件压缩成一个压缩包,这个是方便后续上传到服务器的。SSH上传仅上传文件。不带上传文件夹。所以我们需要进行压缩。后续上传到服务器再进行解压。

                  然后开始配置构建后操作,一样的需要配置邮件信息,邮件信息与上面的配置一样即可。这里我们主要配置如何连接SSH

                   分享图片

                   

                   

                   

                  这里需要注意的是上传的源文件。这里基目录是你的jenkins工作目录,所以需要相对于填写位置

                  这里配置上传文件及解压等操作然后重新启动linux服务器上的服务完成发布。

                  cd /home/hlz
                  
                  rm -f publish
                  
                  unzip publish.zip
                  
                  rm -f publish.zip
                  
                  cd /root
                  
                  systemctl  enable Test.service
                  
                  systemctl  start Test.service
                  
                  systemctl  status Test.service

                   

                  总结

                    到这里在windows上使用jenkins持续集成就完成了。中间还有一些细节需要另行配置的都可以自由发挥,主要流程大概就是这么多了。这里的是通过在本地继续集成然后通过Publish over SSH插件传输到linux服务器进行.Net Core项目的部署的。那么我们也可以直接在Linux上部署Jenkins,这样就不需要这一步连接服务器的操作了。可以直接在服务器上一次性解决问题。

                   


                    逃避不一定躲得过,面对不一定难受.转身不一定最软弱.

                   

                  欢迎大家扫描下方二维码,和我一起踏上设计模式的闯关之路吧!

                   

                    分享图片

                  相关文章
                  相关标签/搜索
                  何仙姑六肖期期准资料 中宁县| 固原市| 扬州市| 巍山| 通渭县| 嘉荫县| 宜良县| 长宁县| 洪雅县| 海盐县| 马公市| 八宿县| 周宁县| 凤城市| 屏南县| 黔西县| 伊宁县| 五河县| 茶陵县| 崇阳县| 遂宁市| 韶山市| 东方市| 延庆县| 施秉县| 海南省| 高淳县| 南木林县| 大安市| 东乌珠穆沁旗| 夏邑县| 黑山县| 无棣县| 和田市| 土默特右旗| 焦作市| 开封县| 修水县| 太仓市| 泰安市| 永春县| 温宿县| 喀喇沁旗| 漳浦县| 尼勒克县| 潮州市| 四子王旗| 凯里市| 南木林县| 宁化县| 封丘县| 资源县| 鲁甸县| 白玉县| 鲁山县| 海城市| 绥江县| 五大连池市| 吉林市| 凭祥市| 翼城县| 蕲春县| 彭山县| 伊宁市| 房产| 永丰县| 六安市| 桦川县| 长春市| 逊克县| 镇宁| 乌兰县| 岑溪市| 寿阳县| 阳春市| 肃宁县| 三亚市| 阜阳市| 安岳县| 永丰县| 龙川县| 堆龙德庆县| 高淳县| 锡林郭勒盟| 南木林县| 桦甸市| 双辽市| 界首市| 靖江市| 麦盖提县| 申扎县| 明水县| 宁乡县| 洪洞县| 延吉市| 邛崃市| 若羌县| 广灵县| 固阳县| 阿拉尔市| 上虞市| 辽宁省| 乃东县| 溧水县| 寿阳县| 洛浦县| 南安市| 封丘县| 凤冈县| 津南区| 威宁| 禹州市| 习水县| 乌鲁木齐市| 抚州市| 蒙阴县| 咸丰县| 自贡市| 昭平县| 来安县| 健康| 包头市| 双柏县| 肥东县| 阿克苏市| 汕头市| 秦安县| 体育| 河津市| 武宁县| 青州市| 宁乡县| 苍梧县| 巴东县| 龙山县| 新昌县| 新竹县| 洪雅县| 上饶市| 广南县| 无为县| 崇州市| 永年县| 修水县| 大渡口区| 来安县| 神农架林区| 宣威市| 长宁县| 兴业县| 甘南县| 普兰店市| 尼木县| 德保县| 鹤岗市| 疏附县| 柳州市| 财经| 额济纳旗| 收藏| 临汾市| 平舆县| 广宁县| 昭觉县| 洛川县| 汉源县| 江陵县| 栖霞市| 开化县| 同心县| 新化县| 萝北县| 黄龙县| 奉新县| 余庆县| 彭水| 腾冲县| 东辽县| 台前县| 清丰县| 娄底市| 新宁县| 大新县| 卢氏县| 商城县| 杨浦区| 林西县| 革吉县| 长葛市| 土默特左旗| 台南市| 班玛县| 德清县| 沐川县| 永济市| 荆州市| 佛学| 镇安县| 怀来县| 博野县| 元氏县| 芷江| 长岭县| 林甸县| 延吉市| 霍林郭勒市| 邮箱| 平和县| 青铜峡市| 汤原县| 泾阳县| 宝清县| 长寿区| 米泉市| 富裕县| 泗洪县| 定襄县| 五原县| 南宫市| 凤庆县| 宜阳县| 淮南市| 家居| 上栗县| 漾濞| 社旗县| 沁水县| 西峡县| 彰化市| 祁门县| 长岛县| 安仁县| 永昌县| 会宁县| 太保市| 丽江市| 方城县| 五大连池市| 汝城县| 西峡县| 望江县| 麦盖提县| 万载县| 客服| 洪泽县| 凤翔县| 清徐县| 巴东县| 蒙山县| 尼木县| 当雄县| 大城县| 佳木斯市| 灌阳县| 城口县| 南京市| 扎鲁特旗| 惠水县| 闽清县| 观塘区| 惠安县| 庄浪县| 石景山区| 嘉黎县| 丰镇市| 会昌县| 南丹县| 增城市| 武隆县| 龙州县| 两当县| 西昌市| 绥芬河市| 南澳县| 灯塔市| 三亚市| 鞍山市| 三门县| 尼勒克县| 那曲县| 桓仁| 和硕县| 敦化市| 商河县| 和龙市| 汾西县| 平定县| 印江| 蒙阴县| 佳木斯市| 香格里拉县| 迁西县| 昌宁县| 宁安市| 雷山县| 阿拉善右旗| 合川市| 宝鸡市| 沙田区| 呼玛县| 揭阳市| 沈阳市| 广德县| 漯河市| 河池市| 长汀县| 正蓝旗| 迁安市| 大厂| 获嘉县| 丹东市| 阿勒泰市| 城市| 三门县| 彝良县| 开鲁县| 阜阳市| 独山县| 庄浪县| 丹东市| 台州市| 连云港市| 金塔县| 平乡县| 旬阳县| 始兴县| 武宁县| 舒兰市| 同心县| 剑阁县| 兰溪市| 中卫市| 济宁市| 新宾| 寿阳县| 邓州市| 秦安县| 多伦县| 中牟县| 郯城县| 周口市| 当阳市| 巫溪县| 葫芦岛市| 香港| 舒兰市| 兰州市| 乐平市| 玛纳斯县| 定边县| 平阴县| 石渠县| 高雄县| 宜黄县| 乐至县| 灵武市| 佳木斯市| 墨竹工卡县| 冀州市| 吉隆县| 光山县| 慈溪市| 盐山县| 治多县| 商丘市| 晋州市| 淅川县| 岫岩| 昌江| 永康市| 孟津县| 盐边县| 康马县| 奉节县| 绵竹市| 拜城县| 龙山县| 安仁县| 蒲江县| 余姚市| 康保县| 霍城县| 恩施市| 肥乡县| 蒙山县| 延吉市| 张掖市| 宁化县| 丹巴县| 大同市| 长葛市| 大竹县| 沙雅县| 左贡县| 民乐县| 铁岭县| 青浦区| 左权县| 阿克陶县| 磐安县| 黔西| 宿迁市| 延安市| 柳林县| 河南省| 洛浦县| 饶河县| 垫江县| 乌什县| 铁力市| 潜山县| 五河县| 溧阳市| 射洪县| 泸溪县| 新蔡县| 樟树市| 沁水县| 温宿县| 广安市| 高淳县| 大姚县| 武邑县| 乐陵市| 德钦县| 旅游| 民乐县| 达日县| 闸北区| 如东县| 桂阳县| 儋州市| 黔江区| 宁都县| 宁阳县| 深泽县| 清新县| 南宫市| 新干县| 东光县| 水富县| 全椒县| 当阳市| 晴隆县| 达日县| 静乐县| 济南市| 庆元县| 象山县| 霍山县| 四会市| 扶绥县| 盈江县| 孟州市| 依安县| 陵水| 定远县| 连南| 阳春市| 偏关县| 库尔勒市| 德昌县| 福安市| 玉林市| 伊宁县| 奈曼旗| 文安县| 黑山县| 台南县| 永济市| 玉屏| 揭东县| 瑞金市| 虹口区| 乌苏市| 武夷山市| 安宁市| 萝北县| 彭山县| 鄂温| 兖州市| 贵德县| 浮山县| 庆安县| 邵阳县| 信宜市| 长寿区| 鄂州市| 阜阳市| 正镶白旗| 潮州市| 黄浦区| 永吉县| 宁强县| 平度市| 玛沁县| 平定县| 永兴县| 古交市| 云霄县| 班戈县| 丰台区| 长子县| 嘉定区| 玉山县| 沙坪坝区| 贡觉县| 增城市| 化州市| 加查县| 察雅县| 桂东县| 新闻| 濮阳市| 芜湖市| 潞西市| 栾川县| 宜川县| 海林市| 德惠市| 鄄城县| 青海省| 榆树市| 乌拉特中旗| 高唐县| 濮阳县| 河源市| 咸宁市| 罗田县| 永和县| 剑河县| 石门县| 长子县| 同心县| 分宜县| 榆中县| 河池市| 海盐县| 新竹市| 团风县| 延安市| 台南县| 阿瓦提县| 海淀区| 道真| 丁青县| 红安县| 玉山县| 二连浩特市| 鄂托克旗| 临朐县| 游戏| 茶陵县| 榕江县| 泰兴市| 兴安县| 新营市| 团风县| 金沙县| 疏附县| 涞水县| 巴彦淖尔市| 湖州市| 五常市| 太谷县| 吉隆县| 南溪县| 洞头县| 曲麻莱县| 介休市| 海晏县| 通州市| 衡南县| 九寨沟县| 通海县| 太仓市| 巴中市| 卓资县| 舟山市| 夏邑县| 永川市| 古浪县| 南江县| 布尔津县| 乐陵市| 通榆县| 清徐县| 库尔勒市| 夏津县| 彭阳县| 登封市| 都昌县| 岳普湖县| 甘谷县| 慈溪市| 资阳市| 两当县| 福海县| 兴城市| 政和县| 庆云县| 奉新县| 屏山县| 金堂县| 江山市| 和林格尔县| 阿尔山市| 防城港市| 邮箱| 延津县| 汪清县| 麻栗坡县| 绿春县| 曲沃县| 开封市| http://bm1961losez.fit http://m.ppmkoj.fit http://www.rbnkix.fit http://wap.khwnkw.fit http://bm1961xarketz.fit http://wap.bm1961xeetz.fit http://ygqtpo.fit http://m.agsewp.fit http://wap.fcmwvg.fit http://m.walldq.fit http://m.bm1961lowz.fit http://elhhbc.fit http://www.sdqxfq.fit http://wap.gtvoqv.fit http://m.owvkoy.fit http://wiqlqt.fit http://www.ltjjxi.fit http://m.urlgfk.fit