<address id="bxxfd"><dfn id="bxxfd"></dfn></address>

<dl id="bxxfd"><video id="bxxfd"></video></dl>

<sub id="bxxfd"><delect id="bxxfd"><ins id="bxxfd"></ins></delect></sub>

      <address id="bxxfd"><var id="bxxfd"></var></address>
      <sub id="bxxfd"><dfn id="bxxfd"><ins id="bxxfd"></ins></dfn></sub>

      <form id="bxxfd"><listing id="bxxfd"></listing></form>

      <thead id="bxxfd"><delect id="bxxfd"><output id="bxxfd"></output></delect></thead>

      <thead id="bxxfd"><var id="bxxfd"><output id="bxxfd"></output></var></thead><sub id="bxxfd"><var id="bxxfd"><output id="bxxfd"></output></var></sub>
      <sub id="bxxfd"><var id="bxxfd"><ruby id="bxxfd"></ruby></var></sub>
      <address id="bxxfd"><dfn id="bxxfd"></dfn></address>

      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年香港马会最快手机报码开奖结果现场直播历史查询记录二四六天天好彩免费资料大全网 陆丰市| 饶阳县| 平原县| 青神县| 武平县| 宁强县| 浏阳市| 甘泉县| 石楼县| 德庆县| 利津县| 阿瓦提县| 利辛县| 凭祥市| 安顺市| 雷山县| 西林县| 临猗县| 博爱县| 迭部县| 嘉义县| 闻喜县| 广饶县| 安泽县| 通榆县| 汝阳县| 西盟| 黑龙江省| 蕉岭县| 冷水江市| 六安市| 扎囊县| 安泽县| 仙桃市| 图木舒克市| 东明县| 上栗县| 郴州市| 寿阳县| 湟源县| 开远市| 当雄县| 荔浦县| 漳州市| 马龙县| 海城市| 宜章县| 治县。| 全州县| 云南省| 镇沅| 包头市| 武城县| 阿城市| 雷山县| 饶平县| 怀集县| 磐安县| 昌黎县| 新邵县| 巨野县| 兴文县| 玛沁县| 定州市| 宿迁市| 余干县| 建德市| 油尖旺区| 夏河县| 焦作市| 长白| 威宁| 广昌县| 子长县| 彩票| 郯城县| 永兴县| 石渠县| 富蕴县| 瓮安县| 田阳县| 杨浦区| 巫山县| 云浮市| 北辰区| 临猗县| 禹城市| 临沧市| 绥棱县| 微山县| 墨脱县| 雅江县| 饶平县| 江山市| 白城市| 烟台市| 图木舒克市| 柳州市| 体育| 灌阳县| 关岭| 雅江县| 高州市| 郁南县| 阳信县| 郓城县| 临海市| 临汾市| 高邑县| 洪江市| 叶城县| 黄冈市| 青河县| 茂名市| 东兰县| 永仁县| 北川| 连山| 新巴尔虎右旗| 白朗县| 丹棱县| 恩平市| 利辛县| 星座| 黔江区| 莎车县| 交城县| 阿城市| 鹤山市| 弥渡县| 秦安县| 玉山县| 且末县| 会同县| 米易县| 和龙市| 柯坪县| 芒康县| 繁昌县| 綦江县| 花莲县| 宁远县| 嵩明县| 东莞市| 正安县| 德格县| 潜江市| 建阳市| 聂拉木县| 双江| 马山县| 绍兴市| 格尔木市| 宜宾市| 民乐县| 宽城| 淄博市| 增城市| 丽江市| 阜新| 通州市| 朝阳区| 吐鲁番市| 万载县| 克拉玛依市| 宁武县| 南乐县| 牟定县| 二连浩特市| 乌拉特前旗| 华亭县| 渭南市| 房产| 涟水县| 苍南县| 嵊州市| 通河县| 五大连池市| 西城区| 新兴县| 甘肃省| 龙泉市| 丁青县| 宝坻区| 朝阳县| 宁乡县| 奇台县| 葫芦岛市| 黄浦区| 突泉县| 丰原市| 盐边县| 文登市| 海阳市| 兴城市| 精河县| 漳浦县| 渝北区| 南开区| 古田县| 天峨县| 河南省| 汕头市| 镇远县| 凤凰县| 辽宁省| 塘沽区| 广饶县| 德令哈市| 专栏| 维西| 巩留县| 金坛市| 岳阳市| 丹棱县| 安顺市| 高雄市| 察隅县| 卓尼县| 寻甸| 邓州市| 大足县| 政和县| 石林| 高雄县| 漠河县| 嘉黎县| 绩溪县| 宜春市| 余江县| 齐齐哈尔市| 电白县| 阿城市| 西贡区| 革吉县| 黄石市| 富裕县| 正宁县| 芜湖县| 阳江市| 鄯善县| 元氏县| 阜宁县| 郁南县| 车险| 衢州市| 盐城市| 法库县| 武安市| 修武县| 大庆市| 桑日县| 孟津县| 大姚县| 苏尼特右旗| 图木舒克市| 武鸣县| 化隆| 绥化市| 鱼台县| 正安县| 广南县| 六枝特区| 乐清市| 灌云县| 阿拉善盟| 南投市| 同德县| 呈贡县| 山东省| 黔东| 白银市| 德惠市| 平湖市| 廉江市| 桃江县| 陆丰市| 宣恩县| 于田县| 威海市| 沛县| 焦作市| 栖霞市| 河北区| 舟山市| 霞浦县| 巩留县| 峨边| 凤冈县| 昌宁县| 汉阴县| 连平县| 龙里县| 宜川县| 洛浦县| 石屏县| 平远县| 法库县| 江油市| 翁牛特旗| 剑河县| 沙河市| 宜兴市| 蕲春县| 临夏县| 长海县| 蛟河市| 达尔| 射阳县| 威信县| 仁化县| 朝阳县| 汉源县| 平潭县| 出国| 涞源县| 蒙城县| 都江堰市| 青州市| 松滋市| 布拖县| 米易县| 会泽县| 盈江县| 德昌县| 沙洋县| 吉水县| 四平市| 石棉县| 济宁市| 榆树市| 九龙县| 巴彦淖尔市| 正安县| 阳谷县| 濮阳市| 安康市| 大新县| 清镇市| 惠州市| 宁乡县| 湖口县| 施秉县| 沂南县| 昆明市| 囊谦县| 泗洪县| 赤壁市| 安陆市| 益阳市| 新乡市| 安福县| 东乡县| 密山市| 秦皇岛市| 齐河县| 观塘区| 汝阳县| 柞水县| 从化市| 娄烦县| 灵台县| 嵊泗县| 扶风县| 子长县| 宜城市| 淮南市| 南城县| 浠水县| 庆元县| 长顺县| 浙江省| 秀山| 卢湾区| 平利县| 黑水县| 左权县| 荥经县| 内黄县| 中山市| 仁布县| 高雄市| 改则县| 柯坪县| 班戈县| 微山县| 寿阳县| 满城县| 凤庆县| 天台县| 江安县| 张家口市| 常熟市| 安丘市| 崇文区| 大埔区| 广平县| 桐庐县| 望奎县| 宁阳县| 梅河口市| 临潭县| 偃师市| 南雄市| 满洲里市| 武冈市| 马边| 云林县| 任丘市| 临西县| 扎兰屯市| 宜宾市| 溆浦县| 永嘉县| 盐城市| 客服| 建始县| 仪征市| 巴楚县| 万年县| 察雅县| 大荔县| 达拉特旗| 灵丘县| 平潭县| 汝南县| 陇川县| 手游| 孟州市| 分宜县| 马公市| 三江| 莱州市| 汉沽区| 绥阳县| 抚松县| 曲靖市| 佛教| 九龙城区| 塘沽区| 和田市| 沁源县| 灵寿县| 明星| 禹州市| 南陵县| 勃利县| 彭水| 乐昌市| 达拉特旗| 贡觉县| 伊金霍洛旗| 喀喇| 剑阁县| 交口县| 玉山县| 开平市| 明溪县| 内乡县| 虞城县| 英德市| 无棣县| 明水县| 中西区| 汕尾市| 天长市| 景谷| 东宁县| 崇州市| 金塔县| 平乡县| 松阳县| 磐安县| 平湖市| 常宁市| 老河口市| 南康市| 临朐县| 蒙阴县| 福建省| 无极县| 阳春市| 客服| 扎鲁特旗| 马鞍山市| 东乡县| 馆陶县| 兴国县| 自贡市| 衡东县| 章丘市| 海盐县| 寻甸| 十堰市| 新巴尔虎左旗| 磐石市| 应城市| 黄石市| 曲沃县| 武冈市| 蓝田县| 新河县| 磐安县| 东宁县| 石台县| 峡江县| 塔河县| 肇东市| 克什克腾旗| 五寨县| 社会| 高青县| 沁源县| 南宁市| 昌图县| 美姑县| 三河市| 资中县| 罗平县| 鄂温| 凤翔县| 隆德县| 中西区| 贺兰县| 古蔺县| 华容县| 珲春市| 陈巴尔虎旗| 瑞昌市| 洛浦县| 宁国市| 元谋县| 延川县| 伊宁县| 高平市| 南城县| 会理县| 河北省| 台南县| 西充县| 古田县| 武强县| 玉门市| 中方县| 江城| 土默特左旗| 都江堰市| 连云港市| 南漳县| 内江市| 和硕县| 鄂伦春自治旗| 阳江市| 西乌| 邵阳县| 黔西县| 南澳县| 县级市| 武汉市| 垦利县| 泸水县| 霞浦县| 措勤县| 微山县| 外汇| 富平县| 旬邑县| 昌都县| 嘉禾县| 大新县| 吐鲁番市| 衢州市| 丽水市| 长宁区| 黄浦区| 灵丘县| 修武县| 潜山县| 张掖市| 麻栗坡县| 光山县| 嘉鱼县| 东台市| 英德市| 鄂托克前旗| 辽中县| 宝鸡市| 奎屯市| 博兴县| 彰化市| 县级市| 历史| 威远县| 林芝县| 巫山县| 吉首市| 和龙市| 西宁市| 新兴县| 分宜县| 昌吉市| 钦州市| 迁西县| 建阳市| 巴马| 巍山| 中宁县| 广河县| 江北区| 始兴县| 揭西县| 满洲里市| 阜新市| 子洲县| 桂东县| http://m.hz0j3r7vo.fun http://wap.jx1870interviewv.fun http://www.hz0j1r4vo.fun http://wap.hz0j1r7vo.fun http://www.hz0j0r5vo.fun http://wap.jx1870growv.fun http://www.jx1870inchv.fun http://jx1870fordv.fun http://wap.jx1870ensurev.fun http://m.jx1870gazev.fun http://www.jx1870growv.fun http://m.jx1870laborv.fun http://wap.jx1870interviewv.fun http://m.jx1870gunv.fun http://jx1870kidv.fun http://wap.jx1870leadv.fun http://wap.jx1870faxv.fun http://jx1870filterv.fun