Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)
Posted Jim
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)相关的知识,希望对你有一定的参考价值。
所要用到的主要插件:
具体操作:
1、配置MSBuild的版本
【系统管理】->【Global Tool Configuration】->【MSBuild】,点击【新增MSBuild】进行版本的添加,如下:
注意:其中Path to MSBuild为文件夹路径,代码要编译的那台机器的文件夹,如果绑定的是slave时,这个路径就代表这slave的路径
最后,点击【Save】完成保存。
注意:如果是4.6的项目,参考:http://www.cnblogs.com/EasonJim/p/6038363.html
2、新建项目进行测试
这里假设在要进行构建的机器上已经新建好项目,并放在“D:\\project\\WebApplication1”。
创建Jenkins的测试Job。
在【构建】节点增加【增加构建步骤】,选择【Build a Visual Studio project or solution using MSBuild】,如下:
注意:这里建议全部项目都编译csproj文件,不建议sln,sln不精确到底哪个项目有用。
输出的目录在命令行上输入。注意命令行不能换行,且最后一个分号不用写!
点击【保存】,然后测试一下效果:
成功发布。
注意:如果是编译Web项目,架设我要发布到“D:\\projectBuildOut\\WebApplication1”目录下,那么最后编译的Web工程为"D:\\projectBuildOut\\WebApplication1\\_PublishedWebsites\\WebApplication1",中间多了_PublishedWebsites文件夹。
3、配置SVN自动签出代码
在Job的配置页面上选择【源代码管理】->【Subversion】,如下:
其中【Credentials】为SVN的账号密码,如下添加:
【Local module directory】为SVN签出的目录,注意:此目录不能输入绝对路径,只能是相对路径,比如jenkins所在本机的workpase为D:\\jenkins,那么最后签出的代码就在这个目录下。
其余默认即可。
接下来是定时检测,这里直接使用每分钟检查是否有更新来进行SVN的Update:
勾选【Poll SCM】输入【* * * * *】(注意是有空格隔开的)。如果要看这些用法,点击右侧问号即可。
最后保存测试。可以手动Build,也可以直接迁入代码之后自动Build。
4、把编译后的文件通过FTP上传
安装插件【Publish Over FTP】
在【系统管理】->【系统设置】->【Publish over FTP】->点击【增加】按钮,增加一个要连接的FTP:
配置基本保持默认,如果有特殊端口等设置的,可以点击【高级】进行配置。最后可以通过【Test Configuration】按钮进行测试。
在Job上【构建后操作】->【增加构建后操作步骤】->【Send build artifacts over FTP】:
注意:【Source files】表示的不是绝对路径,而是jenkins的workpase的路径,相当于相对路径,如果要上传整个目录包括子目录的,最后加上【\\**】;【Remove prefix】表示去除目录前缀,如果不去除,将会按照上面的目录依次创建。【Exclude files】为要排除的文件和文件夹,上面为参考。
提示:ftp上传文件时多一点使用通配符,比如要上传1uplad2016.rar文件,可以使用*upload*.rar这样的通配符,而目录后面\\**,这样代表包括子目录任何文件。
5、BAT
以上是关于Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins+Gitlab配置Webhook实现提交自动部署