一.jenkins环境搭建
1.0 环境准备
需求环境 | 版本 | 描述 |
Jdk | 1.8 | java运行环境 |
jenkins.war | Jenkins运行程序 | |
Pulgins.rar | 插件包:主要ssh和svn | |
Ant | 1.9.15 | web打包工具 |
1.1 基本思路
1.2 安装jenkins
1.2.2运行jenkins.war:java-jar jenkins.war
1.2.3进入控制台: ip:8080
1.2.4配置账号:出现初始密码路径位置。到后台cat这个地址会出现文本密码---->创建1.2.5初始化插件:由于服务器是没有外网的,跳过插件配置
1.3 配置
Ant插件>>环境变量配置>>
Jenkins界面配置:系统管理>>全局工具配置>>
SSH配置>>目前将插件本地下载>>上传到服务器目录下
jenkins界面配置:系统管理>>系统配置>>
SVN配置:与SSH相同
1.3.3日志配置:jenkins.log(直接用指令指定为当前目录)
后台对应变动
2.配置这个任务的svn代码获取地址,./抓取到当前空间名的目录下
3.配置ant打包,调用当前目录下的dynbuild.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="newbssqyl" basedir="." default="makewar">
<property name="classpath_lib" value="dynChangeNum/WEB-INF/lib" />
<property name="sources" value="${basedir}/src"/>
<path id="classpath">
<!--添加lib 中的jar 包到软件中-->
<fileset dir="${classpath_lib}">
<include name="*.jar"/>
</fileset>
<!--添加lib 之外的包
<fileset dir="D:\Tomcat 6.0\lib">
<include name="*.jar" />
</fileset> -->
</path>
<property name="debuglevel" value="source,lines,vars"/>
<property name="target" value="1.6"/>
<property name="source" value="1.6"/>
<target name="clean"
description="clean up" >
<property name="build1" value="build"></property>
<!-- Delete the ${build} directory tree -->
<delete dir="${build1}"/>
</target>
<target name="init" depends="clean">
<property name="build" value="build/destination/webapp"></property>
<property name="src" value="src"></property>
<mkdir dir="${build}"/>
<mkdir dir="${build}\WEB-INF"/>
<mkdir dir="${build}\WEB-INF\classes"/>
<mkdir dir="${build}\WEB-INF\lib"/>
<copy todir="${build}">
<fileset dir="${basedir}\dynChangeNum">
<include name="WEB-INF/**" />
<include name="**" />
</fileset>
</copy>
<!-- 文件copy到对应目录下 -->
<copy todir="${build}/WEB-INF/classes">
<fileset dir="${src}">
<include name="**.*" />
<exclude name="*.java"/>
<exclude name="*.svn"/>
</fileset>
</copy>
</target>
<target name="complie" depends="init">
<!--添加源文件内容和编码utf-8 因为默是系统的本地时间-->
<javac srcdir="${src}" destdir="${build}/WEB-INF/classes" encoding="utf-8" classpathref="classpath" includeantruntime="true">
</javac>
</target>
<target name="makewar" depends="complie">
<!--生成war 包结构-->
<war warfile="dynChangeNum.war" webxml="${build}/WEB-INF/web.xml">
<!-- <lib dir="${build}/WEB-INF/lib">
<include name="**" />
</lib>
<classes dir="${build}/WEB-INF/classes"/> -->
<fileset dir="${build}"/>
</war>
</target>
</project>
4.配置跨服务器部署:*war当前目录下的所有war包 >> /ln远程目录放置
文件夹 >> sh/ln/dynChangeNum.sh执行的xshell脚本
#部署备份地址
war_address=/app/apache-tomcat-8.5.40-8080/webapp
#项目启动文件目录
start_address=/app/apache-tomcat-8.5.40-8080/bin
#项目停止文件目录
stop_address=/app/apache-tomcat-8.5.40-8080/bin
#文件名称
war_name=dynChangeNum.war
#定义datetime变量
datetime=`date +%Y%m%d_%H%M%S_%N |cut -b1-20`
date=$(date +%Y%m%d)
#输出datetime
echo $datetime
echo $date
echo $war_address
#备份(如果一天构建多次,需要判断文件是否创建)
# 判断目录是不是已经存在,如果不存在则创建,存在则输出“dir exist”
dirname=$war_address/war_$date
if [ ! -d $dirname ];then
mkdir $dirname
else
echo dir exist
fi
echo "创建文件完成"
cp $war_address/$war_name $war_address/war_$date
echo "备份文件完成"
#停止服务
sh $stop_address/shutdown.sh
#清除当前文件
rm $war_address/$war_name
#转移打包文件
cp $war_name $war_address
#重启服务器
Nohup $start_address/startup.sh>server.log &
4.访问项目成功时间为5.57