一、目标

  • 搭建jenkins服务器以及配置一台.net编译的slave客户端
  • 完整跑通一个asp.net项目的发布

二、搭建jenkins环境

2.1 安装jenkins

1. 根据官网提示安装
  • 进入jenkins官网下载==最新(如果不是最新的包,可能会存在推荐插件不能安装的现象)==的稳定包,我使用的是2.222版本
  • 下载好war(推荐用war包,方便)包后,运行如下命令
java -jar jenkins.war --httpPort=9800
  • 然后访问IP:9800进入jenkins的配置,第一次需要输入生成的密码,可以根据界面提示找到相关文件
  • 插件安装完成后进入主管理界面
2. 处理插件源的问题

在安装jenkins提供的插件时,遇到了国内网络不稳定的问题,解决办法就是更换镜像源,网上好多都是推荐用[清华大学]的镜像,但[清华大学]的镜像服务器的update-center.json文件内部的包引用地址,还是指向的jenkins更新中心。所以需要搭建一个update-center.json提供服务器,
地址(这是我自己搭建,可供大家测试使用):http://jenkins.b-nature.cn:10026/jenkins/updates/update-center.json

  • 换源方法如下:
  • 进入插件管理->高级页,配置新源地址
  • 更换启动命令
java -Dhudson.model.DownloadService.noSignatureCheck=true -jar jenkins.war --httpPort=9800

其中Dhudson.model.DownloadService.noSignatureCheck=true表示禁用upddate-center.json安全检测

3. 本地安装插件

jenkins也提供插件本地安装的能力,也在“更新中心"->"高级"面板,操作简单,此处不在赘述。

2.2 安装.net相关插件

插件名                             备注

SVN 1.4 Compatibility Plugin      svn拉取代码

PowerShell plugin                      执行ps脚本

MSBuild Plugin                          编译.net项目

File Operations Plugin              对文件做操作

2.3 添加slave节点

  • 在节点管理中心添加从节点配置
  • 根据提示下载相应的包,并运行
  • 然后在节点管理中心,就可以看到slave上线了

三、配置.net发布job

配置.net发布job,看上去很简单,但经过实践操作发现还是有许多点值得注意。

3.1 全局配置

  • 全局凭据:jenkins对svn, git等有一个全局凭据中心来管理账号,这类账号可以在此中心管理,配置结果如下图:
  • 全局工具中心:添加msbuild编译器
    • 注意

      • 其中配置的msbuild路径应该是.net编译环境所在位置,如果是在slave机器上,要配置slave机器上的路径
      • 此处注意msbuild版本的选择,此处配置为.net4.5的msbuild路径:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin

3.2 创建一个自由风格的项目

这步简单,暂不提供图片

3.3 限制job在指定节点运行

3.4 配置svn仓库


此处注意凭据的选择,应该是对应得上,以及svn的地址要填写正确

3.5 配置nuget


nuget的地址,指向是的slave节点存放nuget的地址,配置代码如下:

"D:\nuget\nuget.exe" restore "FM.FLogReport.sln"

3.6 配置msbuild


配置代码如下:

/t:build
/p:Configuration=Release
/p:WebProjectOutputDir=./bin/Publish
/p:OutputPath=./bin/Publish/bin

3.7 压缩文件


此处注意:

  • 径是从job任务根路径开始的,与下图对比可知,归档文件路径也是如此:
  • 此处压缩为zip文件

3.8 归档文件

四、运行job

按照上述配置完成后,执行"构建",就可以获取job结果。

Jenkins基础系统之完整的.net项目编译的更多相关文章

  1. Jenkins自动化部署最完整教程

    1.概述 Jenkins 是一个可扩展的持续集成引擎.主要用于持续.自动地构建/测试软件项目.监控一些定时执行的任务.Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行 ...

  2. 一个完整Java Web项目背后的密码

    前言 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java ...

  3. 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析

    http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...

  4. JENKINS基础使用

    JENKINS总结 修改时间 修改内容 修改人 2016.3.12 创建 刘永志 2016.5.22 添加tomcat+jenkins 刘永志 2016.6.14 添加tomcat找不到ant解决方案 ...

  5. Jenkins结合.net平台之Web项目编译

    前面我们讲解了如何使用msbuild.exe编译一个.net程序.示例中我们讲解的是编译控制台项目,但是我们知道web项目不仅需要编译类的嵌入的资源文件,还要拷贝诸如css,html,js,图片等资源 ...

  6. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

  7. Jenkins 为Jenkins添加Windows Slave远程执行python项目脚本

    为Jenkins添加Windows Slave远程执行python项目脚本   by:授客 QQ:1033553122 测试环境 JAVA JDK 1.7.0_13 (jdk-7u13-windows ...

  8. Jenkins 基础入门

    原文地址:Jenkins 基础入门 博客地址:http://www.extlight.com 一.前言 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作, ...

  9. react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)

    react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目.文中针对react.webpack.babel.react-route.redux.redu ...

  10. 3.Scikit-Learn实现完整的机器学习项目

    1       完整的机器学习项目 完成项目的步骤: (1)    项目概述 (2)    获取数据 (3)    发现并可视化数据,发现规律. (4)    为机器学习算法准备数据. (5)    ...

随机推荐

  1. java 获取访问的真实ip

    request 是 javax.servlet.http.HttpServletRequest 获取其他机器访问自己服务时的真实ip public String getIP(HttpServletRe ...

  2. MongoDB入门实战教程(14)

    MongoDB入门实战教程转眼就到了尾声,本篇我们就来总结一下MongoDB的应用开发最佳实践. 1 关于MongoDB的连接 (1)MongoDB Driver:我们最好选择与所用MongoDB服务 ...

  3. golang+vue3开发的一个im应用

    这是一個开源的前后端分离的IM网页应用. 简单的功能 支持微博登录 端对端消息推送.图片发送.表情包 语音功能 视频功能 支持离线消息推送 创建群聊 群聊消息推送 好友功能 响应式的前端界面支持pc与 ...

  4. Xamarin.Android 禁止横屏 /竖屏

    this.RequestedOrientation = Android.Content.PM.ScreenOrientation.Portrait;//竖屏,禁止横屏 this.RequestedOr ...

  5. java基础---面向对象基础

    成员变量与局部变量的区别: 定义的位置上区别: 1. 成员变量是定义在方法之外,类之内的. 2. 局部变量是定义在方法之内. 作用上的区别: 1. 成员变量的作用是用于描述一类事物的公共 属性的. 2 ...

  6. nodejs起一个http2

    静态页面 其实就是复制官网的代码 其中证书 是我自己申请的可以用证书 dingshaohua.com import fs from "fs"; import http2 from ...

  7. fowsniff WP

    下载地址: https://download.vulnhub.com/fowsniff/Fowsniff_CTF_ova.7z category:重要 awk剪切得到字典,巩固awk使用技巧 motd ...

  8. ETL中如何自定义规则

    一.ETL中的规则 在使用规则之前我们先来了解一下什么是规则,ETL中规则在很多组件中都能看见,可以理解为按照事前约定好的逻辑去执行,规则可以使得数据更加的规范统一,同时也不需要去纵向的修改底层代码, ...

  9. SciTech-Math-Complex Analysis复分析: Complex复数 + De Moivre's Formula:帝魔服公式 + Euler's Formula:欧拉公式

    https://www.desmos.com/calculator/v1nugr08y5 https://mathvault.ca/euler-formula/ https://www.britann ...

  10. mockito测试final类/static方法/自己new的对象

    先准备几个类,方便后面讲解: public final class FinalSampleUtils { public static String foo() { return "aaa&q ...