Jenkins 持续集成环境快捷部署

简介:

搭建持续集成环境 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管理界面

wKioL1kGkuvhXAJ_AAC7UVC1Omc401.png


Jenkins Web的全局环境配置:

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

wKioL1kGkzWQNXSzAAFFYl4-K6I323.png


jenkins的家目录如下图

wKiom1kGk0OxfTnLAADlvZ73B2Y965.png

jdk/mvn的配置如下图:

wKiom1kGk1KidOWJAACGtXgez_Q422.png



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

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

wKiom1kGk4CBk8KsAADK7-InwkA903.png


接下来创建helloworld项目任务

新建任务

wKioL1kGk7uR5KWxAAE5FmppoqI920.png

wKiom1kGk9Dzn-lyAAEDae7-c4Q854.png

wKioL1kGlCegMGovAACX8yggF8c759.png

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

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

wKiom1kGlCjgHswqAACuUP-o2Bk262.png


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

wKiom1kGlMnSY4rpAADjfFdyKYk563.png

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

wKioL1kGlMqgTYqfAADi5adUoSo885.png


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 ,如需转载请自行联系原作者


相关文章
|
1月前
|
敏捷开发 运维 测试技术
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第18天】 随着敏捷开发和DevOps文化的普及,持续集成(CI)已成为软件开发过程中不可或缺的组成部分。本文将深入探讨自动化测试在持续集成环境中的重要性,分析其如何提高软件交付速度、保障质量并减少人工干预。通过对现代软件工程实践中自动化测试策略的剖析,揭示了其在维护高效率和高质量软件产品中的核心地位。
31 7
|
1月前
|
敏捷开发 监控 jenkins
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第14天】 随着敏捷开发和持续集成(CI)的普及,自动化测试已成为确保软件质量和加速交付过程的重要环节。本文旨在深入探讨自动化测试在持续集成环境中的核心价值,分析其如何提高测试效率,减少人工错误,并保障产品的快速迭代与发布。通过对自动化测试工具、策略及最佳实践的综合评述,为读者呈现一个全面的自动化测试实施指南。
18 0
|
4月前
|
jenkins Java 持续交付
【项目集成工具】Jenkins
【项目集成工具】Jenkins
|
3月前
|
关系型数据库 Java Nacos
Seata的部署和集成
部署Seata的tc-server
|
1月前
|
敏捷开发 监控 Devops
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第15天】 本文旨在探讨自动化测试作为软件开发过程中不可或缺的一环,尤其在持续集成(CI)环境中的显著影响。通过深入分析自动化测试的实施策略和最佳实践,文章揭示了如何有效提升软件交付速度和质量。文中不仅讨论了自动化测试的基本概念和框架选择,还详细阐述了其在CI流程中的关键步骤及潜在挑战,并提出了相应的解决方案。
20 4
|
1月前
|
敏捷开发 测试技术 持续交付
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第15天】 随着敏捷开发和持续集成(CI)实践的普及,自动化测试已成为确保软件质量和加速产品上市速度的核心环节。本文将深入探讨自动化测试在持续集成环境中的重要性,分析其如何提高测试效率,减少人工干预的错误,并实现快速反馈循环。通过案例分析和最佳实践分享,我们将揭示自动化测试策略对提升软件开发流程的影响,以及如何有效地将其整合到现代软件生命周期管理中。
|
14天前
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
34 6
|
24天前
|
jenkins Java 持续交付
Docker搭建持续集成平台Jenkins最简教程
Jenkins 是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目。在本文中,我们将使用 Docker 搭建一个基于 Jenkins 的持续集成平台。
108 2
|
30天前
|
JavaScript Java jenkins
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
78 0