Jenkins实现SVN+Maven+Java项目的持续集成
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项目的持续集成的更多相关文章
- Jenkins+MSbuild+SVN实现快速搭建.net持续集成环境(构建、编辑、部署到服务器)
Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建.net持续集成环境 Jenkins和SVN安装这里就不介绍了 一.准备工作 1.Jenkins中系统 ...
- jenkins+docker 持续构建非docker in docker jenkins docker svn maven
工欲善其事必先利其器,为了解脱程序员的,我们程序员本身发明了很多好用的工具,通过各种工具的组合来达到我们想要的结果 本文采用jenkins docker svn maven作为相关工具,项目sprin ...
- Jenkins+maven+git+sonar 系统持续集成&代码单測管理
Jenkins+maven+git+sonar 系统持续集成&代码单測管理 Jenkins的安装 Jenkins是基于Java开发的一种持续集成工具,用于监控持续反复的工作.功能包含: 1.持 ...
- jenkins构建go及java项目
jenkins构建go及java项目 转载请注明出处https://www.cnblogs.com/funnyzpc/p/14554017.html 写在前面 jenkins作为java的好基友,经历 ...
- [Node.js] Node.js项目的持续集成
原文地址:http://www.moye.me/2016/03/03/nodejs_ci_by_jenkins 引子 持续集成 (Continuous Integration,简称CI)是一种软件工程 ...
- 基于 flow.ci 实现 PHP 项目自动化持续集成
高效程序员的习惯之一--让开发流程自动化.Automating shapes smarter future. 这是一个关于如何快速实现 PHP 项目自动化持续集成的快速指导.无论你是否使用过持续集成, ...
- 3 分钟轻松搭建 Ruby 项目自动化持续集成
任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这是一篇关于 Ruby 项目持续集成的快速指导教程,教大家如何使用 f ...
- Jenkins+GitHub+Xcode+fir搭了一个持续集成环境
enkins+GitHub+Xcode+fir搭了一个持续集成环境 字数826 阅读5699 评论44 喜欢49 原文链接 Coding Duck 今天用Jenkins+GitHub+Xcode+fi ...
- Centos7.4简单安装使用gitlab+maven+jenkins实现java代码的持续集成部署
1.工具的简单介绍 gitlab--源代码版本管理控制工具 maven--java代码编译构建工具 jenkins--基于java开发的自动化持续集成部署工具 sonar--代码质量管理工具 2.gi ...
随机推荐
- 适用于 Windows 7 SP1、Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2 的 .NET Framework 4.5.2 仅安全更新说明:2017 年 9 月 12 日
https://support.microsoft.com/zh-cn/help/4040960/description-of-the-security-only-update-for-the-net ...
- 要求根据RandomStr.java:使用类型转换生成六位验证字符串,示例程序每次运 行时,都会生成不同的字符串。
1.程序设计思想验证码 ①定义一个字符串变量来保存随机生成的. ②利用循环产生六位随机数,在产生每一位时将其转换为char类型并写在字符串后面. ③利用对话框显示生成的验证码,并提示用户输入验证码. ...
- come on! linux install JDK9.0.1
哈哈,JDK9已经出来了 我们把它安装到Linux上吧! 一下载JDK9 http://www.oracle.com/technetwork/java/javase/downloads/index.h ...
- cocos2d-x c++ (多种屏幕Android与iOS的适配原理)
1.AppDelegate.cpp 文件中 bool AppDelegate::applicationDidFinishLaunching() { // initialize director aut ...
- Python基础(四) socket简单通讯
socket:我们通常听过的套接字: 服务端: 1.创建socket对象 2.bing 绑定ip及端口 3.对该端口进行监听 4.消息阻塞(等待客户端消息) 客户端: 1.创建socket对象 2.连 ...
- 使用mysqlbinlog从二进制日志文件中查询mysql执行过的sql语句 (原)
前提MySQL开启了binlog日志操作1. 查看MySQL是否开启binlog(进mysql操作) mysql> show variables like 'log_bin%'; 2 ...
- undefined reference 问题各种情况分析
扒自网友文章 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助. 1. 链接时缺失了相关目标文件 ...
- Django后台管理系统讲解及使用
大家在创建Django项目后,在根路由urls.py文件中,会看到一行代码 from django.contrib import admin urlpatterns = [ url(r'^admin/ ...
- SITECORE体验编辑器 - 多站点实施站点解析
SITECORE体验编辑器 - 多站点实施站点解析 我们使用其中一个多站点实现遇到了Sitecore体验编辑器的问题.从内容编辑器中选择并尝试在体验编辑器中打开时属于某个站点的任何页面将始终解析为 ...
- JOptionPane
2018-10-30 14:44:43 开始写 作者:tjk123456 来源:CSDN 原文链接 建议阅读官方资料:https://docs.oracle.com/javase/7/docs/api ...