<thead id="lptrh"></thead>

      <sub id="lptrh"></sub>

            <form id="lptrh"></form>
            <sub id="lptrh"></sub>

            <address id="lptrh"></address>
            <sub id="lptrh"></sub>

            <sub id="lptrh"></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,这样就不需要这一步连接服务器的操作了。可以直接在服务器上一次性解决问题。

               


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

               

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

               

                分享图片

              相关文章
              相关标签/搜索
              王中王开奖结果 查2020开奖记录查询结果香港马会开奖结果手机报码现场直播二四六天天好彩免费资料大全历史纪录在线查询网 周宁县| 修水县| 忻城县| 宁安市| 长宁县| 通许县| 商南县| 中西区| 霍林郭勒市| 大渡口区| 定边县| 静乐县| 买车| 平武县| 通城县| 宁远县| 广南县| 修武县| 固镇县| 萍乡市| 什邡市| 徐州市| 慈利县| 墨江| 德安县| 株洲市| 德清县| 永嘉县| 河西区| 榕江县| 朝阳市| 安西县| 柘荣县| 从江县| 赤城县| 南昌市| 太康县| 福贡县| 托克托县| 莫力| 河北区| 宝坻区| 长治县| 甘谷县| 雷山县| 邹平县| 太保市| 安陆市| 应用必备| 唐海县| 灌阳县| 竹山县| 大竹县| 铁岭市| 手游| 那坡县| 大名县| 石林| 隆化县| 昌乐县| 南陵县| 昭通市| 马关县| 蒙自县| 毕节市| 平泉县| 潜山县| 蒙自县| 名山县| 太仆寺旗| 乌鲁木齐市| 滁州市| 横山县| 沽源县| 丰顺县| 罗平县| 赤峰市| 交口县| 吕梁市| 滨海县| 长垣县| 江都市| 定日县| 闸北区| 车致| 中卫市| 额尔古纳市| 酉阳| 永丰县| 儋州市| 平泉县| 吕梁市| 建德市| 汶上县| 富川| 云龙县| 清水河县| 澎湖县| 华宁县| 左云县| 景德镇市| 克山县| 饶平县| 宁南县| 沙田区| 若羌县| 达州市| 开阳县| 长垣县| 琼海市| 洛扎县| 台江县| 瑞安市| 黔西县| 清涧县| 潞城市| 卢龙县| 繁峙县| 彰化市| 札达县| 毕节市| 隆昌县| 泰来县| 措勤县| 苍南县| 靖远县| 鹤庆县| 古浪县| 阜新市| 沂源县| 桐城市| 绍兴县| 廊坊市| 中卫市| 九龙坡区| 新和县| 广宁县| 云霄县| 内乡县| 黔西| 秭归县| 丽江市| 若羌县| 黑河市| 城市| 池州市| 胶南市| 沅江市| 山东省| 杨浦区| 禄丰县| 抚顺市| 伊川县| 怀仁县| 专栏| 察隅县| 蛟河市| 嘉祥县| 海口市| 府谷县| 黄大仙区| 宿州市| 临清市| 沙洋县| 长沙县| 上虞市| 正宁县| 仪陇县| 游戏| 汉源县| SHOW| 利川市| 辰溪县| 四会市| 德昌县| 潼关县| 北流市| 巩义市| 保定市| 千阳县| 海口市| 盘锦市| 乐业县| 孝感市| 开阳县| 宕昌县| 泊头市| 怀来县| 福建省| 颍上县| 健康| 桐庐县| 清河县| 南溪县| 缙云县| 新源县| 东莞市| 锦州市| 隆安县| 宜君县| 应用必备| 格尔木市| 三台县| 砚山县| 太白县| 卫辉市| 双城市| 延安市| 汝城县| 五大连池市| 正镶白旗| 象山县| 汉寿县| 左贡县| 紫阳县| 鹿泉市| 广昌县| 梓潼县| 唐河县| 景德镇市| 甘德县| 古浪县| 朔州市| 闻喜县| 缙云县| 湄潭县| 湄潭县| 永安市| 墨玉县| 关岭| 金堂县| 仙桃市| 商水县| 星子县| 河曲县| 潞西市| 嵩明县| 青阳县| 碌曲县| 二连浩特市| 江川县| 会昌县| 子洲县| 河间市| 宜黄县| 嘉黎县| 新营市| 西城区| 台东市| 定襄县| 聂拉木县| 左云县| 阿拉尔市| 尚志市| 萨迦县| 望奎县| 清水县| 运城市| 石家庄市| 噶尔县| 商南县| 泸西县| 噶尔县| 曲靖市| 利津县| 利津县| 宜兴市| 元江| 广宗县| 托克逊县| 自贡市| 蓬溪县| 南川市| 德钦县| 耿马| 泽州县| 朝阳市| 霍邱县| 丹寨县| 贡山| 金寨县| 泽州县| 象州县| 山阴县| 沾化县| 建瓯市| 宁德市| 周口市| 乐平市| 永吉县| 青龙| 多伦县| 洛隆县| 德阳市| 上犹县| 瓮安县| 通化县| 年辖:市辖区| 黑山县| 嘉祥县| 荃湾区| 芜湖市| 宜宾市| 自贡市| 古丈县| 浏阳市| 利津县| 怀仁县| 休宁县| 安平县| 鹤山市| 五大连池市| 辽中县| 财经| 鹤壁市| 丽江市| 齐齐哈尔市| 晋宁县| 龙胜| 三穗县| 阜新市| 铜山县| 临江市| 阿拉善左旗| 龙山县| 金门县| 新巴尔虎右旗| 玛沁县| 寿光市| 扎囊县| 沈阳市| 成武县| 麻江县| 当雄县| 肥城市| 义马市| 丰都县| 中宁县| 静宁县| 那坡县| 济宁市| 永新县| 阿合奇县| 峡江县| 高邑县| 泗水县| 昆明市| 山阴县| 顺昌县| 灌阳县| 屯留县| 胶南市| 乐清市| 抚顺县| 壶关县| 台东市| 南部县| 三门县| 积石山| 河池市| 政和县| 苏尼特右旗| 张掖市| 东明县| 神木县| 涿鹿县| 庐江县| 平邑县| 安龙县| 东安县| 商洛市| 托克逊县| 本溪| 招远市| 吕梁市| 三江| 古田县| 岗巴县| 江西省| 仁布县| 和平区| 松阳县| 沅陵县| 岳阳县| 永川市| 兴宁市| 淮阳县| 张家港市| 大化| 如东县| 黄骅市| 乳源| 安庆市| 易门县| 黄浦区| 修文县| 滨海县| 天全县| 苏尼特右旗| 桑植县| 皋兰县| 绍兴县| 富锦市| 永新县| 修武县| 连江县| 温州市| 隆子县| 黄浦区| 眉山市| 淄博市| 武山县| 乐平市| 积石山| 河东区| 资源县| 榆树市| 南阳市| 桂阳县| 虞城县| 荆门市| 马鞍山市| 布尔津县| 贺州市| 莱芜市| 崇礼县| 衡阳县| 广灵县| 玉溪市| 遂昌县| 蓝田县| 淮滨县| 云龙县| 连南| 古浪县| 景泰县| 万荣县| 锡林浩特市| 中江县| 沈丘县| 隆安县| 固始县| 南昌市| 连南| 耿马| 曲沃县| 安远县| 白玉县| 台中市| 平泉县| 大宁县| 鄂伦春自治旗| 定南县| 金湖县| 广水市| 文成县| 白沙| 六安市| 长兴县| 阳原县| 镇远县| 安溪县| 墨江| 辽宁省| 平江县| 永仁县| 普兰县| 乡宁县| 溧水县| 太仓市| 永丰县| 青神县| 海南省| 绥宁县| 金湖县| 奈曼旗| 安平县| 陕西省| 武邑县| 电白县| 顺平县| 肥西县| 武威市| 行唐县| 怀柔区| 木兰县| 克什克腾旗| 呼和浩特市| 鸡东县| 馆陶县| 遵化市| 临洮县| 灵台县| 南充市| 通化县| 玉屏| 抚顺县| 西林县| 清水河县| 无棣县| 两当县| 婺源县| 玛纳斯县| 行唐县| 贺兰县| 女性| 宜君县| 乐业县| 高青县| 桐庐县| 新乐市| 茶陵县| 西乌珠穆沁旗| 南投市| 湖口县| 喀什市| 丰宁| 连山| 大关县| 乌恰县| 武清区| 古交市| 岫岩| 醴陵市| 岳西县| 连城县| 门头沟区| 遵义县| 奉新县| 盘锦市| 张掖市| 邵东县| 西乌| 丹凤县| 嘉兴市| 湖南省| 扎囊县| 阿合奇县| 浪卡子县| 平利县| 苗栗市| 梁河县| 犍为县| 江陵县| 京山县| 遵义市| 新沂市| 嘉峪关市| 绥滨县| 荆州市| 新宾| 新宾| 昌江| 屏边| 屏山县| 和硕县| 科技| 富民县| 西充县| 内江市| 南岸区| 鄂州市| 九江县| 玛沁县| 淅川县| 固安县| 赤壁市| 华宁县| 鲜城| 介休市| 南和县| 黑山县| 金乡县| 梁河县| 简阳市| 中山市| 资兴市| 诸暨市| 安塞县| 惠东县| 霍林郭勒市| 鸡东县| 肇庆市| 太谷县| 余庆县| 手游| 吕梁市| 东明县| 囊谦县| 深水埗区| 怀柔区| 兰坪| 石阡县| 武鸣县| 东乡县| 尚义县| 锦屏县| 奉节县| 枞阳县| 土默特左旗| 千阳县| 苏尼特右旗| 班戈县| 浮山县| 贵港市| 紫阳县| 怀安县| 阿拉善左旗| 永修县| 张家港市| 舟山市| 三明市| 来安县| 七台河市| 黎城县| http://wap.jx1870failv.fun http://hz0j4r2vo.fun http://jx1870findv.fun http://jx1870leaguev.fun http://wap.jx1870frankv.fun http://jx1870filzv.fun http://www.jx1870gainv.fun http://www.hz0j2r3vo.fun http://m.jx1870labelv.fun http://m.hz0j0r1vo.fun http://m.jx1870expressv.fun http://jx1870exitv.fun http://www.hz0j1r8vo.fun http://www.jx1870hatv.fun http://wap.jx1870ironv.fun http://www.hz0j0r0vo.fun http://m.jx1870factorv.fun http://www.jx1870guardv.fun