12-06 3,275 views
安装jdk1.7
1)下载jdk-7u79-linux-x64.tar.gz至/usr/local目录,解压并创建软连接:
tar -zxvf jdk-7u79-linux-x64.tar.gz
ln -s jdk1.7.0_79 jdk
2)在/etc/profile中增加环境变量:
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
3)重新打开shell,输入“java -version”,如下图所示,说明jdk1.7安装成功。
安装Maven
1)下载apache-maven-3.3.9-bin.tar.gz至/usr/local目录,解压并创建软连接:
tar -zxvf apache-maven-3.3.9-bin.tar.gz
ln -s apache-maven-3.3.9 maven
2)在/etc/profile中增加环境变量:
export M2_HOME=/usr/local/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
3)Maven默认本地库地址是用户目录下的.m2/repository,可以通过修改用户目录下的.m2/settings.xml或Maven安装目录下的conf/settings.xml来修改本地库地址:
/usr/local/maven/repo
.m2/settings.xml优先级高于conf/settings.xml,.m2/settings.xml适用于某个用户,conf/settings.xml适用于所有用户。
4)重新打开shell,输入“mvn -version”,如下图所示,说明Maven安装成功。
安装Git
1)直接使用yum方式安装:
yum install git
安装启动Jenkins
下载Jenkins.war,可以将该war包置于Web应用容器(如Tomcat)的应用目录下,通过Tomcat启动Jenkins,也可以直接使用“java -jar”启动Jenkins,使用Jetty作为Web应用容器。
启动前,需要在/etc/profile增加Jenkins的环境变量:
export JENKINS_HOME=/usr/local/jenkins
使用如下命令启动Jenkins:
nohup java -jar /usr/local/jenkins.war &
Jenkins默认使用8080端口,在浏览器下打开如图所示:
配置Jenkins
1)配置用户登录
在“系统管理->Configure Global Security”中设置“启用安全”,如图所示:
安全域可以选择“Jenkins专有用户数据库”,并允许用户注册。
保存后页面右上角会出现“注册”选项,注册用户后再进入“系统管理->Configure Global Security”,设置用户的授权策略,如图所示:
授权策略可以选择“安全矩阵”,取消匿名用户的所有权限,为“test”用户赋予所有权限。
2)安装Git插件
Jenkins默认没有安装Git插件,可以在“系统管理->管理插件”中选择Git插件进行安装,如图所示:
3)配置jdk和Maven
在“系统管理->系统设置”中配置jdk和Maven,如图所示:
自动构建和部署项目
web-test(https://github.com/magicwt/web-test.git)是一个Java Web项目,使用Maven构建,代码托管在GitHub上,使用Jenkins进行自动构建和部署。
1)新建项目
选择“构建一个maven项目”,如图所示:
2)Git配置
在“源码管理”中选择“Git”,并输入项目的GitHub库地址(事先需要将Jenkins所在服务器的公钥添加到项目的“Deploy Keys”中),如图所示:
3)Maven配置
在“构建触发器->Build”中设置Maven构建目标和选项,在“构建触发器->Post Steps”中设置构建成功后执行的Shell,Shell的功能是通过scp命令将war包拷贝至部署服务器,解压并重启Web应用进程,如图所示:
Shell代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#!/bin/sh hudson_basedir=/usr/local/jenkins/workspace/web-test/ module_name=web-test war_name=test ip=xxx.xxx.xxx.xxx resin_sh=/usr/local/resin/bin/httpd_test.sh webapp_dir=/opt/app war_source=$hudson_basedir/target/$war_name.war war_goal=$webapp_dir/$war_name.war war_goal_dir=$webapp_dir/$war_name user=root function deploy(){ echo " ---------------------------- stop resin in ${ip} ..." ssh ${user}@${ip} "$resin_sh stop"; while [ `ssh ${user}@${ip} " $resin_sh status | grep java.net.ConnectException | wc -l " ` = "0" ];do echo "waiting for resin stop " sleep 1 done; echo "stop resin ok !" ssh ${user}@${ip} "rm -rf $war_goal_dir*"; scp $war_source ${user}@${ip}:$war_goal; ssh ${user}@${ip} "unzip -oq $war_goal -d $war_goal_dir "; echo "start resin ..." ssh ${user}@${ip} "$resin_sh start"; echo " ----------------------------- start resin ok !" } function main(){ deploy } main |
配置完成后,点击“保存”。
4)构建、部署项目
在项目中,点击“立即构建”,在“Console Output”可以实时观察构建、部署过程,如图所示:
构建、部署成功后,浏览器下访问Web应用,访问正常。