搭建持续集成环境 jenkins + maven + svn + tomcat 实现自动编译打包部署

1.环境准备

(1)JDK1.8.0_131                    #不低于1.7版本,这里用最新版本

(2)Apache Maven 3.3.9        #可以选择3.2.5或者3.3.9;不要使用3.5.0版本!!

(3)SVN客户端(Subversion 1.6.11)         #程序版本控制SVN1.6.11

(4)Tomcat1.7(apache-tomcat-7.0.77)      #Tomcat7.0.77或者7.0.75

(5)Centos6.7

2.安装配置

JAVA环境安装配置

下载最新版本1.8.0_131

cd /tmp/

wget http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

tar zxf jdk-8u131-linux-x64.tar.gz -C /usr/local/

vim /etc/profile

添加如下内容

export JAVA_HOME=/usr/local/jdk1.8.0_131

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后执行

source /etc/profile

Maven安装

到Apache官网下载maven3.3.9版本

wget

http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

tar zxf apache-maven-3.3.9-bin.tar.gz -C /usr/local/

vim /etc/profile

添加下面内容

export MAVEN_HOME=/usr/local/apache-maven-3.3.9

export PATH=$PATH:$MAVEN_HOME/bin

source /etc/profile

查看版本

[root@localhost tmp]# mvn -v

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)

Maven home: /usr/local/apache-maven-3.3.9

Java version: 1.8.0_131, vendor: Oracle Corporation

Java home: /usr/local/jdk1.8.0_131/jre

Default locale: zh_CN, platform encoding: UTF-8

OS name: "linux", version: "2.6.32-573.el6.x86_64", arch: "amd64", family: "unix"

Tomcat安装

下载Tomcat7.0_77

wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.77/bin/apache-tomcat-7.0.77.zip

unzip apache-tomcat-7.0.77.zip

mv apache-tomcat-7.0.77 /usr/local/

cd /usr/local/apache-tomcat-7.0.77

安装Jenkins

wget http://mirrors.jenkins.io/war-stable/1.609.3/jenkins.war

mv jenkins.war /usr/local/apache-tomcat-7.0.77/webapps/

cd /usr/local/apache-tomcat-7.0.77/webapps/

在webapps目录下启动jenkins

执行命令  java -jar jenkins.war

(关闭selinux和iptables)

浏览器访问jenkins   http://192.168.1.7:8080/

安装配置svn

可以参考http://superleedo.blog.51cto.com/12164670/1888804

yum -y install subversion

mkdir /var/svn

svnadmin create /var/svn/project

svn import /etc/java  file:///var/svn/project -m "java"

启动svn

svnserve -d -r /var/svn/project

用windows客户端检出 svn://192.168.1.7/project  测试是否成功

需要设置密码的请查看上面链接文档自行设置

使用Maven创建项目

通过maven创建helloworld项目

cd /tmp/

使用mvn命令创建

mvn archetype:generate  -DgroupId=helloworld -DartifactId=helloworld

[INFO] Scanning for projects...

[INFO]

[INFO] ------------------------------------------------------------------------

[INFO] Building Maven Stub Project (No POM) 1

[INFO] ------------------------------------------------------------------------

.....信息多,略去......

[INFO] Generating project in Interactive mode ##此处可能会卡住,可以选择一直等待1个小时左右就正常进行了,只要这次链接下载成功了,以后就不会出现这种情况了;也可以用重新创建时加入忽略跳过参数-DarchetypeCatalog=internal ##

.........................

.........................

Define value for property 'version':  1.0-SNAPSHOT: :    ##执行到此处停止了,回车即可

[INFO] Using property: package = helloworld

Confirm properties configuration:

groupId: helloworld

artifactId: helloworld

version: 1.0-SNAPSHOT

package: helloworld

Y: :     ##输入Y,回车

。。。。。下面等待直到成功

tree helloworld/

helloworld/

├── pom.xml

└── src

├── main

│   └── java

│       └── helloworld

│           └── App.java

└── test

└── java

└── helloworld

└── AppTest.java

下面将创建的项目导入到svn版本库中/var/svn/project中

svn import /tmp/helloworld file:///var/svn/project/ -m "helloword"

3 配置Jenkins

浏览器访问jenkins   http://192.168.1.7:8080/ 进入Jenkins管理界面

Jenkins Web的全局环境配置:

系统管理=>系统设置配置jdk和mvn的家目录,顺便查看自己的Jenkins家目录是否改变为自己定义的

jenkins的家目录如下图

jdk/mvn的配置如下图:

mvn的仓库为了方便使用默认的:

Jenkins填写URL,SVN选择自己安装的版本

接下来创建helloworld项目任务

新建任务

pom.xml文件,选择跳过测试(不跳过测试,耗时还可能报错):

添加内容如下(clean install -Dmaven.test.skip=true)

设置好任务后,新建工作空间,也就是执行编译打包,此过程时间会比较长,需要耐心等待

构建完成后出现jar包,在后台工作空间中会多一个target目录

4 构建过程中常见错误及解决方法

(1)svn的URL配置问题,路径出现不正确或者提示要输入账号密码.

SVN的路径是项目的上一级目录,如果配置的svn有账号密码,就根据提示填入账号密码即可

(2)找不到pom.xml.

pom.xml文件是必须的,maven创建的项目都会有这个文件,其他项目支持maven且有这个文件才行

所有测试的时候我选择用maven命令创建一个测试项目,保证不出现pom.xml找不到的问题

(3)maven创建项目时在generating project in interactive mode卡住了.

解决方法是可以选择一直等待就行了大概一个小时左右,只是首次会出现这个情况(推荐等待完成)

也可以在命令后加参数-DarchetypeCatalog=internal

mvn archetype:generate  -DgroupId=helloworld -DartifactId=helloworld -DarchetypeCatalog=internal

(4)在执行创建工作空间时候,创建不成功,出现错误.

.........

java.lang.NoSuchFieldError: DEFAULT_USER_SETTINGS_FILE

.........

这是jar冲突,版本太高引起的,maven3.5.0版本有这个问题,使用3.3.9低版本就可以了

总结:以上这些完成后,算是基础环境搭建已经成功完成,剩下的就是根据自己的项目实际情况深入学习配置使用Jenkins持续集成了,谷歌、官网,还有51cto是解决各种问题的最好地方!

本文转自super李导51CTO博客,原文链接:http://blog.51cto.com/superleedo/1920913 ,如需转载请自行联系原作者

Jenkins 持续集成环境快捷部署相关推荐

  1. 半天搭建你的Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  2. Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目

    Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目 前文使用Docker搭建Jenkins+Docker持续集成环境我们已经搭建了基于docker+ ...

  3. centos下搭建Jenkins持续集成环境(安装jenkins)

    centos下搭建Jenkins持续集成环境(安装jenkins) 1.安装JDK yum install -y java 2.安装jenkins 添加Jenkins库到yum库,Jenkins将从这 ...

  4. Jenkins持续集成环境, 如何自定义 maven repositories

    假设自定义的仓库路径为"/opt/repository",那么在"系统管理-系统设置"中,修改"全局MAVEN_OPTS"的值为如下的内容: ...

  5. 一步步部署基于Windows系统的Jenkins持续集成环境

    如题:本文将介绍如何在Windows环境下运用Jenkins部署持续集成环境.之所以写本文,是因为在最近工作当中,学习使用Jenkins时,确实遇到了一些问题,而大多数教程文档都是基于Mac或是Lin ...

  6. Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境

    本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建.发布到仓库\并部署上线. 0. 前置条件 服务器安装docker,并启动docker ...

  7. Jenkins持续集成环境之插件管理和角色管理

    1.持续集成环境-Jenkins插件管理 Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用.例如从Gitlab拉取代码,使用Maven构建项目等 功能需要依靠插件完成.接下来演示 ...

  8. 从零搭建Robot Framework+Jenkins持续集成环境

    安装Jenkins 系统环境:CentOS Linux release 7.3.1611 x86_64 GNU/Linux 安装JDK Jenkins是基于Java开发的持续集成系统(CI),所以运行 ...

  9. Jenkins - 持续集成环境搭建【转】

    1. Jenkins 概述 Jenkins是一个开源的持续集成工具.持续集成主要功能是进行自动化的构建.自动化构建包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件. 2 ...

最新文章

  1. 顺序队列之C++实现
  2. 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342...
  3. java连接sqlserver2008
  4. 本地方法(JNI)——数值参数与返回值
  5. covid 19如何重塑美国科技公司的工作文化
  6. 划分用户故事(user-story)的原则
  7. 后端怎么接收map_史上最全,C++后端开发面试题与知识点汇总
  8. Python判断文件是否存在、访问
  9. 卡巴斯基7.0如何设置授权文件
  10. SQL Server 数据库之生成与执行 SQL 脚本
  11. 火车头采集器文章伪原创插件工具
  12. 二维码的实现原理和实现过程[纠错码编码]
  13. masm32快速编辑器菜单翻译整理
  14. oracle vm virtualbox增强功能,VirtualBox增强功能包下载
  15. Flutter couldn‘t find “libflutter.so“
  16. 网盘、云盘共享文件搜索引擎链接收藏目录
  17. linux一次三行显示文件内容,Linux 命令合集(二):查看文件及内容处理命令
  18. SQL Server中@@ROWCOUNT的用法
  19. web网页引入自定义字体设置
  20. 【数据结构】栈的应用-算术表达式求值#数据结构实验任务书

热门文章

  1. 应聘表计算机水平填什么,应聘表计算机水平怎么填写(如何描述计算机水平)
  2. 我的RUST学习—— 【第十章 10-2】trait:定义共享行为
  3. jQuery——JavaScript 库
  4. 微信小程序从入坑到放弃二十二:完美兼容安卓和ios手机的底部评论框
  5. 怎么样脱颖而出,成为一个更优秀的人?
  6. 无垠PE组合工具箱纯净无广告的PE启动盘
  7. 小白也能看懂的网络基础 | 02 什么是连接设备?
  8. 解决windows系统powershell命令行无法使用代理的问题
  9. 深入探讨企业服务器虚拟化,部署服务器虚拟化的安全风险
  10. 《必然》四、不可复制性决定所有价值