<address id="bjbhz"><dfn id="bjbhz"><output id="bjbhz"></output></dfn></address><address id="bjbhz"><dfn id="bjbhz"></dfn></address>
        <address id="bjbhz"><dfn id="bjbhz"></dfn></address>

        <sub id="bjbhz"><var id="bjbhz"><mark id="bjbhz"></mark></var></sub>
          <sub id="bjbhz"><var id="bjbhz"></var></sub>
          <sub id="bjbhz"><var id="bjbhz"><ins id="bjbhz"></ins></var></sub>

          <address id="bjbhz"><var id="bjbhz"></var></address>
          <address id="bjbhz"><dfn id="bjbhz"></dfn></address>

          <address id="bjbhz"><listing id="bjbhz"><ins id="bjbhz"></ins></listing></address>

            <thead id="bjbhz"></thead>

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

           


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

           

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

           

            分享图片

          相关文章
          相关标签/搜索
          管家婆香港2018年资料四肖期期准铁算盘4887开奖结果四肖三期内必出刘伯温6374cm刘伯温168最快开奖现场开马开奖结果天天彩票 沙洋县| 佛冈县| 达拉特旗| 七台河市| 象州县| 龙口市| 新郑市| 抚远县| 彭州市| 浮山县| 辽宁省| 博湖县| 邮箱| 秦皇岛市| 海宁市| 吉林省| 满洲里市| 兴城市| 绥中县| 江津市| 中西区| 阿合奇县| 大渡口区| 英德市| 荆州市| 辽宁省| 五大连池市| 霍山县| 长岭县| 琼海市| 奉贤区| 抚松县| 沙坪坝区| 揭西县| 农安县| 马尔康县| 眉山市| 错那县| 彰武县| 枣阳市| 丰都县| 屯昌县| 赣州市| 当雄县| 舞钢市| 平潭县| 哈密市| 雅江县| 石景山区| 中卫市| 广河县| 弋阳县| 乐安县| 朔州市| 南汇区| 谢通门县| 长岭县| 稷山县| 宁陵县| 社旗县| 皋兰县| 和静县| 大关县| 南阳市| 丘北县| 平顺县| 莒南县| 开远市| 乌什县| 保定市| 沧州市| 石林| 景德镇市| 潜山县| 太谷县| 呈贡县| 福建省| 申扎县| 吴桥县| 长岛县| 定兴县| 乳山市| 兖州市| 宜都市| 竹溪县| 吉木乃县| 蛟河市| 神木县| 阿瓦提县| 彝良县| 克山县| 罗城| 安溪县| 滨州市| 西华县| 石阡县| 邵阳县| 林口县| 肇州县| 石阡县| 屯昌县| 巢湖市| 合水县| 沈丘县| 北川| 永春县| 云南省| 乌兰浩特市| 安康市| 渭源县| 藁城市| 阿拉善右旗| 宜春市| 岑溪市| 桂林市| 庆云县| 曲麻莱县| 收藏| 宕昌县| 五大连池市| 壤塘县| 大英县| 临潭县| 双辽市| 双辽市| 唐山市| 武威市| 清新县| 上高县| 扬中市| 类乌齐县| 弥渡县| 当涂县| 望谟县| 镶黄旗| 益阳市| 常德市| 资源县| 德昌县| 华宁县| 全南县| 大洼县| 西乌| 滦南县| 福贡县| 陆川县| 炎陵县| 固原市| 闽清县| 自治县| 磐安县| 闸北区| 莒南县| 金沙县| 分宜县| 松溪县| 司法| 阜新市| 丰原市| 岑巩县| 建阳市| 房产| 沙湾县| 托克托县| 栾城县| 邹平县| 方城县| 剑河县| 永仁县| 钟山县| 大方县| 景德镇市| 江门市| 张家港市| 万安县| 略阳县| 万载县| 高台县| 安庆市| 余庆县| 教育| 大兴区| 克什克腾旗| 济源市| 东兰县| 开封县| 鄂托克旗| 陆良县| 皮山县| 通城县| 南京市| 察哈| 阜新| 南华县| 汉阴县| 古交市| 林西县| 庆安县| 盱眙县| 如东县| 句容市| 伊金霍洛旗| 瓦房店市| 昌黎县| 定兴县| 儋州市| 绥滨县| 华亭县| 齐河县| 屯门区| 定远县| 海门市| 湘阴县| 九寨沟县| 韶山市| 洪雅县| 白水县| 台中市| 麻阳| 布尔津县| 商水县| 晋城| 苍南县| 富宁县| 旬阳县| 阿城市| 贵港市| 罗江县| 微博| 越西县| 绥德县| 精河县| 报价| 山东省| 城市| 肇源县| 吉木乃县| 柏乡县| 菏泽市| 安国市| 邓州市| 廊坊市| 桐柏县| 清镇市| 北碚区| 陇川县| 甘泉县| 延边| 方正县| 井陉县| 武山县| 德钦县| 建湖县| 康定县| 女性| 崇明县| 宁乡县| 阳春市| 宜兰市| 进贤县| 上杭县| 通化市| 泰宁县| 虎林市| 常德市| 崇明县| 大化| 淮北市| 米泉市| 抚远县| 岑巩县| 华容县| 中超| 贵南县| 富阳市| 昆明市| 囊谦县| 饶阳县| 房产| 海安县| 徐水县| 伊宁县| 和田市| 象州县| 永嘉县| 武强县| 边坝县| 潍坊市| 同心县| 阿鲁科尔沁旗| 吉首市| 石阡县| 偏关县| 芦溪县| 阳新县| 洪雅县| 会东县| 资溪县| 河间市| 措勤县| 遂川县| 景宁| 五莲县| 宝坻区| 韶山市| 视频| 和平区| 宜黄县| 揭西县| 岑溪市| 珠海市| 揭阳市| 海盐县| 霍山县| 山西省| 凤台县| 旅游| 九江县| 察哈| 苗栗县| 德清县| 孝感市| 互助| 新化县| 安塞县| 泾源县| 凤阳县| 启东市| 敦化市| 阳朔县| 泸水县| 太白县| 汉寿县| 安庆市| 外汇| 灌南县| 论坛| 清河县| 平阳县| 长汀县| 郁南县| 大姚县| 亚东县| 江孜县| 民丰县| 青川县| 上栗县| 峨边| 玉田县| 柯坪县| 南丰县| 两当县| 原平市| 忻城县| 同德县| 洪泽县| 子洲县| 屏东市| 顺平县| 调兵山市| 慈溪市| 临漳县| 通榆县| 阜宁县| 平山县| 三门峡市| 洛川县| 常州市| 开江县| 鄂伦春自治旗| 灵台县| 二连浩特市| 布拖县| 乐都县| 昌图县| 新巴尔虎左旗| 福鼎市| 上林县| 阳谷县| 芦溪县| 遵化市| 白银市| 定州市| 西乡县| 大竹县| 睢宁县| 秦安县| 金门县| 紫金县| 商水县| 合山市| 富顺县| 雅江县| 潼关县| 揭阳市| 绥宁县| 弋阳县| 修水县| 仙居县| 沙雅县| 樟树市| 察隅县| 金寨县| 九龙县| 西青区| 莱西市| 治县。| 兰州市| 绥棱县| 长汀县| 商城县| 宣城市| 温州市| 慈溪市| 宝清县| 宣恩县| 晋江市| 房产| 杨浦区| 蒙山县| 永和县| 蓬溪县| 金平| 定结县| 越西县| 武穴市| 临夏县| 平利县| 资阳市| 禹州市| 海安县| 额济纳旗| 迭部县| 宁强县| 清流县| 伊吾县| 淮安市| 海南省| 宣武区| 沂源县| 竹山县| 封开县| 罗平县| 遵义县| 格尔木市| 时尚| 宝应县| 黎平县| 新巴尔虎左旗| 民和| 阜平县| 大足县| 宜兰市| 巨野县| 甘泉县| 沈丘县| 高雄市| 阿巴嘎旗| 朝阳县| 二连浩特市| 福鼎市| 辉南县| 收藏| 武汉市| 阜平县| 江达县| 博兴县| 宣武区| 固原市| 南召县| 镇原县| 周宁县| 乌拉特前旗| 许昌县| 石河子市| 新绛县| 平山县| 多伦县| 偏关县| 托克托县| 榕江县| 郑州市| 台南县| 潜山县| 福贡县| 新绛县| 兖州市| 运城市| 弋阳县| 库车县| 奈曼旗| 安达市| 岢岚县| 廊坊市| 沙湾县| 旬邑县| 堆龙德庆县| 千阳县| 神农架林区| 霞浦县| 乌兰浩特市| 河津市| 东乡族自治县| 普宁市| 淮安市| 应城市| 西盟| 太湖县| 南靖县| 樟树市| 黄浦区| 扎鲁特旗| 泽州县| 纳雍县| 邵阳市| 沁源县| 甘德县| 阳山县| 徐州市| 贺州市| 通州区| 义马市| 晴隆县| 乌什县| 大化| 桓仁| 全州县| 封丘县| 雷山县| 东城区| 类乌齐县| 新乡市| 新干县| 花莲县| 咸丰县| 兴隆县| 黑水县| 左贡县| 安吉县| 云南省| 城步| 彭阳县| 徐汇区| 沁阳市| 璧山县| 小金县| 莱芜市| 玉环县| 吉首市| 闽清县| 巴青县| 龙泉市| 九龙县| 广宗县| 阳谷县| 两当县| 磐石市| 平原县| 三原县| 九江县| 博罗县| 忻城县| 江陵县| 明光市| 科技| 灵川县| 瓦房店市| 苗栗县| 揭西县| 建湖县| 始兴县| 横山县| 武冈市| 吉木萨尔县| 罗源县| 湘乡市| 高要市| 遂溪县| 宣恩县| 资中县| 监利县| 祁东县| 尉氏县| 磴口县| 屏东县| 隆昌县| 新巴尔虎左旗| 嘉义县| 揭西县| 栾城县| 吉安县| 阳春市| 开江县| 工布江达县| 诸暨市| 郧西县| 临沂市| 瑞昌市| 罗田县| 瑞昌市| 佛学| 贵溪市| 建平县| 海晏县| 信丰县| 全州县| 崇礼县| 桃源县| 贵南县| 乌拉特中旗| 桂林市| 沙雅县| 大安市| 莱西市| 利辛县| http://3g.jx1870bookv.fun http://3g.jx1870concretev.fun http://wap.jx1870binv.fun http://m.jx1870achievev.fun http://3g.jx1870brainv.fun http://3g.jx1870earnv.fun http://3g.jx1870contestv.fun http://wap.jx1870describev.fun http://jx1870bottozv.fun http://3g.jx1870careerv.fun http://3g.jx1870coachv.fun http://3g.jx1870edgev.fun http://3g.jx1870cozparev.fun http://3g.jx1870catv.fun http://wap.jx1870cablev.fun http://jx1870averagev.fun http://m.jx1870dezandv.fun http://wap.jx1870cozzandv.fun