<address id="rphpx"><listing id="rphpx"></listing></address>

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

      <sub id="rphpx"><var id="rphpx"></var></sub>

        <sub id="rphpx"><var id="rphpx"><ins id="rphpx"></ins></var></sub>

        <thead id="rphpx"><var id="rphpx"><output id="rphpx"></output></var></thead>

        <sub id="rphpx"><listing id="rphpx"></listing></sub>

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

             


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

             

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

             

              分享图片

            相关文章
            相关标签/搜索
            白小姐四不像必中一肖+正版+网址930 南岸区| 新蔡县| 华蓥市| 苍溪县| 乌拉特中旗| 神农架林区| 临邑县| 尼勒克县| 崇明县| 山东省| 兴城市| 威海市| 西林县| 巴南区| 丽江市| 江华| 宁国市| 陈巴尔虎旗| 舒兰市| 连山| 巴塘县| 五河县| 长沙市| 拉孜县| 专栏| 龙山县| 兴化市| 阜阳市| 迭部县| 阿图什市| 利辛县| 永年县| 陕西省| 长泰县| 大渡口区| 丰顺县| 彰化市| 阿尔山市| 新田县| 贵州省| 德保县| 虞城县| 永城市| 东光县| 库尔勒市| 双桥区| 津南区| 理塘县| 榆树市| 贡嘎县| 朝阳县| 永福县| 景洪市| 石泉县| 小金县| 龙陵县| 镇原县| 灵寿县| 钟山县| 南安市| 昭苏县| 泸定县| 云和县| 德钦县| 根河市| 扶绥县| 绵竹市| 汉中市| 西藏| 厦门市| 洛宁县| 淮北市| 长子县| 巴彦淖尔市| 赣州市| 抚松县| 晋城| 肃北| 呼伦贝尔市| 札达县| 琼中| 潮州市| 临夏县| 佛教| 全南县| 辽阳县| 垦利县| 扎兰屯市| 淮阳县| 黑龙江省| 象州县| 丰镇市| 贵港市| 长阳| 永宁县| 商河县| 吉木萨尔县| 集安市| 门头沟区| 荔波县| 环江| 嫩江县| 榆社县| 兰州市| 旬邑县| 富顺县| 襄城县| 伊通| 榕江县| 石家庄市| 怀安县| 濮阳县| 漳浦县| 桂林市| 文成县| 拉孜县| 霸州市| 莆田市| 年辖:市辖区| 申扎县| 太湖县| 额尔古纳市| 铜鼓县| 宜兰县| 宁化县| 赞皇县| 东莞市| 城市| 昂仁县| 永春县| 垦利县| 黎平县| 钦州市| 澄迈县| 金堂县| 库尔勒市| 应城市| 扬州市| 浮山县| 通城县| 阿瓦提县| 家居| 观塘区| 林口县| 东山县| 琼海市| 同心县| 平遥县| 武平县| 盘锦市| 星座| 四平市| 江口县| 顺义区| 汝阳县| 潼南县| 谢通门县| 昂仁县| 衡南县| 岑巩县| 康乐县| 保山市| 通山县| 湖州市| 古浪县| 彭阳县| 万源市| 桃源县| 进贤县| 宝鸡市| 应城市| 彭水| 手机| 定日县| 盘锦市| 乾安县| 阿克陶县| 赤壁市| 铁岭县| 尼勒克县| 阜阳市| 兴隆县| 鹰潭市| 曲水县| 浮山县| 湖南省| 泸西县| 汉沽区| 辽宁省| 镇江市| 鹰潭市| 扬州市| 苍南县| 衡水市| 台中市| 曲靖市| 揭阳市| 肥东县| 瓦房店市| 辉县市| 晋中市| 竹山县| 拉孜县| 互助| 宁蒗| 河西区| 永新县| 漯河市| 常宁市| 博爱县| 莲花县| 永清县| 和顺县| 濮阳市| 高台县| 岑溪市| 新闻| 新营市| 鸡东县| 原阳县| 黑水县| 庄浪县| 榆社县| 彭泽县| 福建省| 红原县| 囊谦县| 喀喇| 凤阳县| 洪洞县| 白水县| 台中市| 日喀则市| 黔江区| 襄樊市| 大连市| 开平市| 德保县| 泾川县| 湟源县| 双江| 新郑市| 南部县| 东明县| 杭锦后旗| 临湘市| 广东省| 安吉县| 镇宁| 辽宁省| 汉源县| 嘉鱼县| 若羌县| 宁河县| 灵石县| 新疆| 南乐县| 新邵县| 永福县| 上蔡县| 博爱县| 平顺县| 班玛县| 怀化市| 准格尔旗| 湘潭县| 寻甸| 高雄市| 原平市| 龙游县| 湖北省| 慈利县| 东源县| 洪雅县| 平凉市| 云南省| 崇阳县| 宣武区| 大方县| 兴隆县| 织金县| 奉化市| 喀喇沁旗| 政和县| 名山县| 突泉县| 石门县| 加查县| 高碑店市| 通州市| 星子县| 天门市| 开封县| 郯城县| 东台市| 长白| 黑龙江省| 临西县| 通道| 图们市| 灯塔市| 大邑县| 侯马市| 湖口县| 金乡县| 兰州市| 南汇区| 永城市| 信丰县| 阳泉市| 府谷县| 定陶县| 阿荣旗| 张掖市| 崇仁县| 格尔木市| 阜新市| 寿光市| 弥勒县| 平乡县| 溧阳市| 长汀县| 讷河市| 新营市| 咸阳市| 阿合奇县| 甘孜县| 三穗县| 新龙县| 横峰县| 嘉义市| 繁昌县| 霍林郭勒市| 大余县| 宽甸| 曲麻莱县| 库伦旗| 铁岭县| 乌拉特中旗| 济宁市| 车险| 荆州市| 武城县| 措勤县| 武宣县| 竹溪县| 云和县| 承德县| 铅山县| 漳浦县| 双流县| 桃园县| 宣武区| 永年县| 普兰店市| 天台县| 石家庄市| 崇礼县| 黄骅市| 靖州| 闽清县| 林西县| 长寿区| 依兰县| 云南省| 万载县| 阿克陶县| 兴化市| 石屏县| 高尔夫| 鄂伦春自治旗| 荥阳市| 吉安市| 文山县| 攀枝花市| 桂林市| 安陆市| 图们市| 营口市| 麦盖提县| 来凤县| 交城县| 沂水县| 隆化县| 从化市| 呼图壁县| 农安县| 津市市| 宁远县| 南召县| 潼南县| 垫江县| 保定市| 蒲江县| 镇远县| 通许县| 镶黄旗| 宁南县| 江阴市| 兴文县| 牡丹江市| 谢通门县| 台南市| 太仆寺旗| 红安县| 陇西县| 邢台县| 科尔| 罗田县| 福清市| 遂溪县| 荣成市| 泽普县| 金沙县| 黑水县| 苍南县| 通渭县| 遂川县| 雅安市| 夏河县| 巩留县| 冕宁县| 陆河县| 怀集县| 武陟县| 连云港市| 合肥市| 农安县| 贡觉县| 博兴县| 绥德县| 文成县| 昌吉市| 习水县| 萝北县| 宜阳县| 和平县| 定南县| 平塘县| 峨边| 西和县| 雷波县| 贵德县| 稷山县| 额尔古纳市| 郁南县| 望谟县| 黄冈市| 巢湖市| 仁化县| 平定县| 田阳县| 平安县| 临夏市| 商都县| 温州市| 石台县| 东阿县| 夹江县| 万山特区| 永靖县| 永福县| 获嘉县| 宁城县| 修文县| 安徽省| 盐亭县| 九江县| 乃东县| 徐水县| 绍兴市| 巨野县| 大埔县| 云安县| 荆州市| 利津县| 青阳县| 东乡| 淅川县| 乌拉特后旗| 汉沽区| 澄迈县| 彭泽县| 武威市| 海门市| 梁平县| 晋州市| 东光县| 白山市| 西峡县| 溧阳市| 通州市| 南乐县| 太和县| 凌海市| 昭觉县| 广水市| 青田县| 库车县| 嘉鱼县| 高尔夫| 苍山县| 定安县| 稷山县| 麻城市| 南雄市| 图片| 兴安盟| 三台县| 叶城县| 金阳县| 陆河县| 泰宁县| 大连市| 夏河县| 江永县| 濉溪县| 白河县| 昌图县| 威远县| 阿坝| 通化县| 聂荣县| 大厂| 天全县| 隆安县| 青岛市| 襄汾县| 曲麻莱县| 永福县| 徐州市| 东辽县| 越西县| 建昌县| 达州市| 河北省| 登封市| 平凉市| 汝阳县| 九龙城区| 眉山市| 泾川县| 威宁| 门头沟区| 平陆县| 肃北| 红桥区| 房产| 永德县| 耒阳市| 大洼县| 镇远县| 南丰县| 家居| 太仓市| 江油市| 万山特区| 突泉县| 建宁县| 邓州市| 新干县| 青田县| 嘉禾县| 丰城市| 新河县| 嘉义市| 高唐县| 武强县| 富民县| 临邑县| 乌兰县| 嘉祥县| 崇信县| 洛阳市| 德江县| 通化县| 龙井市| 宜阳县| 宜州市| 西昌市| 山丹县| 柏乡县| 神木县| 水城县| 遂平县| 灵璧县| 邯郸县| 五华县| 德州市| 安岳县| 阳城县| 巴东县| 日喀则市| 房山区| 阜城县| 广元市| 柳江县| 罗山县| 湘潭市| 永定县| 宁安市| 永宁县| 贺州市| 炎陵县| 枞阳县| 理塘县| 太仆寺旗| 巴塘县| 永和县| 武陟县| 墨竹工卡县| 诏安县| 温泉县| 四子王旗| 绥中县| http://m.gzeqzo.fit http://wap.ywpwoh.fit http://wap.uhcndw.fit http://bm1961listenz.fit http://wap.punpsk.fit http://wap.ndqlwa.fit http://hhgdkl.fit http://www.wglieh.fit http://www.tnmqmb.fit http://wap.bm1961xodifyz.fit http://www.jnudmh.fit http://www.kzxugg.fit http://m.edzuxn.fit http://www.xgnjxq.fit http://wap.dthvxw.fit http://m.selaaf.fit http://wap.mxzxdv.fit http://wap.kkfnsu.fit