搭建持续集成环境 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 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
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
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
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 :8080/
安装配置svn
可以参考
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 :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持续集成了。
局域网内利用GitLab+Jenkins自动生成GitBook并发布(Nginx)
Linux+Git+Maven+Jenkins+Neuxs自动化编译环境搭建