因为公司用的是svn版本管理工具并且部署在了windows服务器上,所以测试环使用jenkins需要部署两套环境,

一套是在本地windows服务器,jenkins从svn下载代码完成打包并上传到linux跳板机上

一套是在linux环境上,把跳板机上的包上传到对应服务器上并备份以前版本,重启新jar包

今天先讲如何在windows环境上完成打包并上传到linux服务器上

步骤;

1、jenkins安装好,配置好jdk.maven 环境,本身就有的可以自定义路径的,没有的可以再jenkins自行安装,在jenkins系统设置的全局工具配置中,

1.配置好maven 配置中的settings路径,配置好maven设置,指定工作位置存放, settings.xml 设置 localRepository:(地址可以自定义,方便管理)   ,一

2.jdk路径

3.maven路径

2.系统设置-全局工具设置配置好ssh

3.下载SSH Publishers插件并安装,这个工具是用来把打包的项目上传到跳板机上
jenkins基础数据搞好了,现在开始按照步骤开始打包并上传
1.新建一个maven项目
2.源码管理选择Subversion,正确填写svn项目路径和用户名密码
svn更新参数解释
  • Use‘svn update’ as much as possible

    • 第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

    • 以后更新的时候,不会判断已有文件是否在svn里存在。比如工作目录下的文件123在svn里不存在,那么更新的时候不会删除123。

    • 不会判断工作目录下的文件是否被改动,只会判断svn是否有新版本需要更新。比如工作目录下的文件zzz.txt内容为zzz,svn上的zzz.txt内容为空,如果svn上zzz.txt没有新版本,则在更新的时候不会更新zzz.txt,也就是说如果手动修改了工作目录下的文件,如果此文件在svn上没有出现新版本,就不会更新。一旦svn上的zzz.txt有新版本后就会更新工作目录的zzz.txt,这时工作目录下会生成如下几个文件:zzz.txt、zzz.txt.mine、zzz.txt.r223、zzz.txt.r224,其中zzz.txt.r223为svn上老版本、zzz.txt.r224为svn上新版本、zzz.txt.mine为工作目录上的zzz.txt的副本、zzz.txt记录了文件变化。

    • svn上删除了文件,更新的时候,工作目录里的此文件也会被删除。但是如上例中的zzz.txt手动修改过,已经和svn上的不一样了,这时将不会被删除。

  • Alwayscheck out a fresh copy

    • 第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

    • 每一次更新的时候,都会先清除工作目录下的所有文件,然后重新check-out一份完整的项目到工作目录下。

  • Emulateclean checkout by first deleting unversioned/ignored files,then ‘svn update’

    • 第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

    • 以后更新的时候会判断工作目录下的文件是否在svn里存在,如果不存在则删除,如果存在且有新版本则更新。

    • 会判断工作目录下的文件是否被改动,不管有没有新版本,都会还原为svn上的最新版本。

    • svn上删除了文件,更新的时候,工作目录里的此文件也会被删除。

  • Use‘svn update’ as much as possible,with ‘svn revert’ before update

    • 第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

    • 以后更新的时候不会判断工作目录下的文件是否在svn里存在。

    • 会判断工作目录下的文件是否被改动,不管有没有新版本,都会还原为svn上的最新版本。

    • svn上删除了文件,更新的时候,工作目录里的此文件也会被删除。

3.构建触发器选择构建什么样的触发,可以选择手动,轮询,定时构建

参数解释

build whenever a snapshot dependency is built

当job依赖的快照版本被build时,执行本job。

build after other projects are built

当本job依赖的job被build时,执行本job

build periodically

隔一段时间build一次,不管版本库代码是否发生变化。

poll scm

隔一段时间比较一次源代码如果发生变更,那么就build。否则,不进行build。

Poll SCM:定时检查源码变更,如果有更新就checkout最新code下来,然后执行构建动作。

如果没有更新就不会执行构建

Build periodically:周期进行项目构建(源码是否发生变化没有关系)

每15分钟构建一次:H/15 * * * *   或*/5 * * * *

每天8点构建一次:0 8 * * *

每天8点~17点,两小时构建一次:0 8-17/2 * * *

周一到周五,8点~17点,两小时构建一次:0 8-17/2 * * 1-5

每月1号、15号各构建一次,除12月:H H 1,15 1-11 *

*/5 * * * * (每5分钟检查一次源码变化)

0 2 * * * (每天2:00 必须build一次源码)

4.构建环境

参数解释

Delete workspace before build starts:默认删除所有的,也可以设置删除特定的文件
- Patterns for files to be deleted:正则匹配删除哪些文件
- Apply pattern also on directories:规则是否也应用到文件夹
- Check parameter:是否删除,是个bool值,true则删除,false不删除.为毛感觉这个有点鸡肋
- External Deletion Command:执行外部删除命令
Abort the build if it’s stuck:构建阻塞的时候,根据超时策略处理.
- Time-out strategy:超时策略,有绝对时间,相对时间,根据以前的构建时间判断等
- Time-out variable:超时时间
- Time-out actions:超时后的处理,如终结,faile调或者写描述
- Add timestamps to the Console Output:在输出界面添加时间戳
- Use secret text(s) or file:使用密文,用于全局性的管理密码等,勾选后会在下方出现Binding,输入需要的用户名,密码证书等就可以了

5.Pre Steps  bulid执行之前的操作,可以再这里设置参数,没什么特殊需要的话,一般不需要填写,使用默认设置就即可

6.bulid 项目

有点事,后面再继续写,。。。。

												

jenkins+svn完整打包并上传到linux服务器上的更多相关文章

  1. 将windows下的文件上传到Linux服务器上

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lx_Frolf/article/deta ...

  2. 中文名文件上传到linux服务器上以后文件名会乱码(openoffice)

    1.中文名文件上传后保存在linux服务器上文件名会乱码,但是我们通过SSH直接对服务器上的一个文件进行重命名是可以使用中文的,而且显示出来是正确的,这说明服务器是可以支持中文的. 2.而为什么上传的 ...

  3. 通过XShell实现windows文件上传到Linux服务器上

    .XShell上传文件到Linux服务器上 在学习Linux过程中,我们常常需要将本地文件上传到Linux主机上,这里简单记录下使用Xsheel工具进行文件传输 1:首先连接上一台Linux主机 2: ...

  4. 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

    一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

  5. 编译的java工程压缩上传到linux服务器上后,中文的类名显示乱码

    首先声明,类名是用中文命名的,这个别人写的,不允许修改. 本地用7zip软件压缩成zip包,传到服务器解压,发现中文的class文件名称是乱码. 解决办法: 方法一:使用jar命令打成jar包,传到服 ...

  6. windows文件上传到linux服务器上

    https://blog.csdn.net/m0_37751917/article/details/80739850 1:检查是否安装sz  rz rpm -qa |grep sz rpm -qa | ...

  7. linux下的ssh工具之,本地上传到linux服务器and Linux服务器文件另存为本地。非sftp工具。

    首先,当你只有一个ssh工具可以连接linux,但你有想把文件在 linux 和windows(本地)直接的切换.其实可以的: 本文参考 1.将本地的文件,放到ssh远程的linux服务器上: 首先要 ...

  8. 使用Maven打包项目并上传到Linux服务器

    Maven打包: 项目右键Run as-->Maven build...-->  出来下面的界面,注意红色部分的填写,Goals填写package表示打包,下面的Skip Tests表示打 ...

  9. 发布新的模型类包(用于上传到 NuGet 服务器上)

    生成包文件: 1.修改了模型类之后,在项目上点击右键,在列表菜单中选择 “编辑 …….csproj”,然后将里面的三个版本号都换成新的版本号. 2.右键项目,点击“打包” 3.复制输出信息中生成的包的 ...

随机推荐

  1. [转载]使用IEDriverServer.exe驱动IE11,实现自动化测试

    转自:https://www.cnblogs.com/feiquan/p/8531618.html 下载地址: http://dl.pconline.com.cn/download/771640-1. ...

  2. vi编辑器使用记录

    01. vi 简介 1.1 学习 vi 的目的 在工作中,要对 服务器 上的文件进行 简单 的修改,可以使用 ssh 远程登录到服务器上,并且使用 vi 进行快速的编辑即可 常见需要修改的文件包括: ...

  3. WEB API系列(一):WEB API的适用场景、第一个实例

    在我前一篇博客中已经给各位简单介绍了HTTP协议与RestFul API的关系,以及一些基本的HTTP协议知识,在这些知识的铺垫下,今天,我们一起来讨论一下WEB API的适用场景,然后写我们第一个W ...

  4. HTML标记

    html:超文本标记语言 标记,标签,元素 单标签:<标签名  属性名="属性值" 属性名=“属性值” /> 双标签:<标签名  属性名="属性值” 属 ...

  5. mongo学习笔记2--索引及表设计

    -背景: 鉴于我们使用mongo作为数据库,期间少不了需要添加索引和对业务表进行设计.因此以下我对mongo索引及表设计原则做了一些分享.希望对大家有用,如有错误还望指正~ MongDB的索引类型简介 ...

  6. java之JVM(一)

    内存模型: Java内存模型建立在自动内存管理的概念之上.当一个对象不再被一个应用所引用,垃圾回收器就会回收它,从而释放相应的内存. JVM从底层操作系统中分配内存,并将它们分为以下几个区域: 方法区 ...

  7. nodejs window平台上 以服务运行

    刚学nodejs  想使用 sc create 来创建服务,但是倒腾了很久没有弄出来,创建是成功了,使用 net start 启动服务报错,没有控制功能.后来网上找了一下 发现这个东西:nssm 使用 ...

  8. Docker和jenkins实现springboot自动部署

    准备: 一个springboot项目.一台虚拟机(centos 7). 安装: linux安装docker 更新yum:yum update 下载docker: yum –y install dock ...

  9. 当你的layui表格要做全选+删除功能【兼容ie8】

    <!-- 全选 --> <div class="choose"> <input type="checkbox" id=" ...

  10. asp.net 跨域访问

    摘自 https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests- ...