Jenkins 2.46.1

Centos 7.3

JDK 7

安装jdk/maven/svn

在Jenkins所在的Linux机器安装jdk和maven,步骤就不说了,下面是环境变量:

export JAVA_HOME=/usr/local/jdk1..0_65
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/tools.jar
export PATH=$JAVA_HOME/bin:$PATH export M2_HOME=/usr/local/apache-maven-3.0.
export PATH=$M2_HOME/bin:$PATH

注意:maven的conf/settings.xml配置应该是自己项目的,这里也省略了;

svn直接用yum安装即可:

# yum install svn -y

安装Jenkins插件

浏览器登录Jenkins,进入插件管理,安装下面三个插件:

Maven Integration plugin
Subversion Plug-in
Publish Over SSH

同时会有其他依赖的插件安装,若有安装失败的就去http://updates.jenkins-ci.org/download/plugins下载后在“高级”那里上传上来即可;

都安装完成后重启下Jenkins:

# systemctl restart jenkins

在Jenkins配置jdk/maven/svn

浏览器登录Jenkins,进入“系统管理” -> “Global Tool Configuration”,配置jdk和maven后保存:

下面创建一个maven类型的任务(job):

(填入svn信息)

(添加svn用户:输入username和password即可)

(构建触发器,H/5 * * * * 表示每5分钟检查一次,如果svn有更新就进行一次构建)

(maven参数)

最后点击“保存”按钮,然后会进入这个新建的任务页面,点击“立即构建”试试:

(第一次构建遇到过报错:SVNAuthenticationException: svn: E170001: Authentication required for 'reps',进到配置里重新选一下svn用户即可)

自动部署

自动检测svn并构建仍然不够,还需要自动部署和重启;

首先需要配置Jenkins所在Linux到部署Linux的免密登录,假设两者ip分别为192.168.1.111和112,则在111上执行命令:

(命令1有交互按自己的需求填写,简单的就全部直接回车)

(命令2需要输入112的root密码)

# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.112

接着在浏览器,进入“系统管理” -> “系统设置”,配置SSH:

然后再这个SSH配置的下方增加112机器的配置:

下面进入前面新建的任务的配置中,在“增加构建后操作步骤”中选择“Send build artifacts over SSH”:

强调一,目标文件,这里是任务路径下的相对路径,与浏览器中任务的工作空间看到的路径一致;

强调二,传输到目标路径,这个是“系统设置”中那个“远程工作目录”的相对路径,比如这里就是把file.zip传到/usr/local/assembly/;

保存后再次构建,构建完成后,在112机器上检查:

# ll /usr/local/assembly/file.zip
-rw-r--r-- root root Apr : /usr/local/assembly/file.zip

实现的效果:对这个maven工程,每五分钟检测svn,若有提交则构建并更新和重启;

over

Jenkins实现SVN+Maven+Java项目的持续集成的更多相关文章

  1. Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...

  2. jenkins+docker 持续构建非docker in docker jenkins docker svn maven

    工欲善其事必先利其器,为了解脱程序员的,我们程序员本身发明了很多好用的工具,通过各种工具的组合来达到我们想要的结果 本文采用jenkins docker svn maven作为相关工具,项目sprin ...

  3. Jenkins+maven+git+sonar 系统持续集成&代码单測管理

    Jenkins+maven+git+sonar 系统持续集成&代码单測管理 Jenkins的安装 Jenkins是基于Java开发的一种持续集成工具,用于监控持续反复的工作.功能包含: 1.持 ...

  4. jenkins构建go及java项目

    jenkins构建go及java项目 转载请注明出处https://www.cnblogs.com/funnyzpc/p/14554017.html 写在前面 jenkins作为java的好基友,经历 ...

  5. [Node.js] Node.js项目的持续集成

    原文地址:http://www.moye.me/2016/03/03/nodejs_ci_by_jenkins 引子 持续集成 (Continuous Integration,简称CI)是一种软件工程 ...

  6. 基于 flow.ci 实现 PHP 项目自动化持续集成

    高效程序员的习惯之一--让开发流程自动化.Automating shapes smarter future. 这是一个关于如何快速实现 PHP 项目自动化持续集成的快速指导.无论你是否使用过持续集成, ...

  7. 3 分钟轻松搭建 Ruby 项目自动化持续集成

    任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这是一篇关于 Ruby 项目持续集成的快速指导教程,教大家如何使用 f ...

  8. Jenkins+GitHub+Xcode+fir搭了一个持续集成环境

    enkins+GitHub+Xcode+fir搭了一个持续集成环境 字数826 阅读5699 评论44 喜欢49 原文链接 Coding Duck 今天用Jenkins+GitHub+Xcode+fi ...

  9. Centos7.4简单安装使用gitlab+maven+jenkins实现java代码的持续集成部署

    1.工具的简单介绍 gitlab--源代码版本管理控制工具 maven--java代码编译构建工具 jenkins--基于java开发的自动化持续集成部署工具 sonar--代码质量管理工具 2.gi ...

随机推荐

  1. 致敬金庸:武侠版编程语言...Java像张无忌还是令狐冲?

    我就喜欢这样,等新闻消失,热点过去,人们快要遗忘的时候, 用自己的方式,想起他.让他被人想起. 短评:夫千里之远,不足以举其大:千仞之高,不足以举其深.<倚天屠龙记> 短评:这世间和张三丰 ...

  2. UX求职:FB和微软这些大佬公司看重的UX设计师技能,你还差几条?

    最近是金三银四的求职季,当然,不管你是想求职跳槽,还是想不断充电学习升职加薪,总是要从优秀的一群人中学习. 本文依据 Facebook.微软.Booking 等互联网大佬公司的UX设计师访谈记录,整理 ...

  3. iOS 测试企业应用的分发

    开发者能够方便地来做iOS应用的测试分发,目前可以选用“浦公英”和“Fir.im”来做. 生成IPA文件 生成应用的 IPA 文件可以使用命令行 xcodebuild exportArchive -e ...

  4. 24.form表单提交的六种方式

    form表单提交方式 1.无刷新页面提交表单 表单可实现无刷新页面提交,无需页面跳转,如下,通过一个隐藏的iframe实现,form表单的target设置为iframe的name名称,form提交目标 ...

  5. LeetCode167.两数之和II-输入有序数组

    给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2. 说明: 返回的下标值 ...

  6. 源码解读 Laravel PHP artisan config:cache

    来源 https://laravel-china.org/articles/5101/source-code-reading-laravel-php-artisan-configcache 源码在哪 ...

  7. python: ImportError: cannot import name 'Style' from 'openpyxl.styles' 解决方法

    import os, openpyxl from openpyxl.styles import Font, Style os.chdir("C:\\") wb = openpyxl ...

  8. 移动端点击返回时强制页面刷新解决办法(pageshow)

    在做移动端项目的时候经常遇到这样一个功能比如: 返回后页面不刷新,一些失效的信息依然显示在页面上.这个问题在iphone手机上会出现,在Android手机上返回时会自动刷新(由于手机机器种类不多,无法 ...

  9. python二叉树的深度遍历之先序遍历流程图

  10. c# 控件的基类——Control

    控件的基类用于Windows窗体应用的控件都派生自Control类,并继承了许多通用成员,这些成员都是平时使用控件的过程中最常用的. Name:控件实例的名字,通常通过“属性”窗口设置,控件实例名称变 ...