jenkins+mawen+svn实现自动化构建部署html
说明:java
jenkins采用war包方式安装,运行在tomcat下
python
java工程可采用maven打包(如:开发使用myeclipse maven打包)(开发负责)
web
jenkins所在服务器安装maven
shell
jenkins经过svn将代码拉取到本地,使用maven进行打包,将生成的war包放到jenkins根目录下,而后执行shell脚本(python脚本)
apache
步骤:vim
tomcat安装参考:http://732233048.blog.51cto.com/9323668/1703053 tomcat
jenkins安装:
bash
下载地址:http://jenkins-ci.org/ 服务器
将war包放到tomcat的根目录下,如:/opt/tomcat7/webapps/
cd /opt/tomcat7/webapps/ unzip jenkins.war -d jenkins rm jenkins.war /opt/tomcat7/bin/startup.sh
访问:ip:8080/jenkins
配置系统设置:
##################################################
默认的主目录是放在/root/.jenkins/目录下
###################################################
安装jdk和mawen:
####################################################
####################################################
#####################################################
安装mawen:
下载地址:http://maven.apache.org/download.cgi
cd /usr/local/src/ tar -zxf apache-maven-3.3.9-bin.zip cp -a apache-maven-3.3.9 /usr/local/maven-3.3.9
点击应用,保存:
建立第一个任务:
#####################################################
#####################################################
######################################################
配置svn:
#####################################################
#####################################################
######################################################
######################################################
执行shell命令:
#######################################################
########################################################
优化jenkins:
参考:https://wiki.jenkins-ci.org/display/JENKINS/Tomcat
vi /opt/tomcat7/bin/catalina.sh ##添加: JAVA_OPTS='-server -Xms1024m -Xmx2048m -XX:PermSize=512M -XX:MaxNewSize=512m -XX:MaxPermSize=512m' export CATALINA_OPTS="-DJENKINS_HOME=/data/jenkins" ##修改主目录,修改jvm栈内存 /opt/tomcat7/bin/shutdown.sh ##重启tomcat /opt/tomcat7/bin/startup.sh
开始构建:
############################################################
#############################################################
构建成功:
建立jenkins登录用户:
############################################################
###############################################################
################################################################
################################################################
#################################################################
使用ANT构建结果输出:
vim /data/jenkins/jobs/jinzhuan/workspace/build.xml <?xml version="1.0" encoding="UTF-8"?> <project name="jinzhuan" default="war" basedir=""> <property name="project.name" value="jinzhuan"/> <property name="war.name" value="jinzhuan"/> <property file="build/build.properties"/> <property name="compiler.args" value="-encoding UTF-8"/> <property name="build.dir" value="${basedir}/build"/> <property name="class.dir" value="${build.dir}/classes"/> <property name="src.dir" value="${basedir}/src"/> <property name="web.dir" value="${basedir}/WebContent"/> <property name="lib.dir" value="${web.dir}/WEB-INF/lib"/> <tstamp> <format property="datestamp" pattern="yyyy-MM-dd"/> </tstamp> <presetdef name="my.javac"> <javac includeantruntime="false"/> </presetdef> <!-- 定义Class Path --> <path id="compile.classpath"> <fileset dir="${lib.dir}"> <include name="**/*.jar"/> </fileset> <fileset dir="${java.home}"> <include name="**/*.jar"/> </fileset> </path> <patternset id="compiler.resources"> <include name="**/?*.properties"/> <include name="**/?*.script"/> <include name="**/?*.groovy"/> <include name="**/?*.drl"/> <include name="**/?*.ftl"/> <include name="**/?*.dsl"/> <include name="**/?*.xml"/> <include name="**/?*.html"/> <include name="**/?*.dtd"/> <include name="**/?*.tld"/> <include name="**/?*.gif"/> <include name="**/?*.png"/> <include name="**/?*.jpeg"/> <include name="**/?*.jpg"/> <include name="**/?*.xsd"/> <include name="**/?*.schemas"/> </patternset> <!--删除任务--> <target name="clean" description="删除"> <echo message="删除目录"/> <delete dir="${build.dir}/classes"/> </target> <target name="init" description="建立目录" depends="clean"> <echo message="建立目录--以执行"/> <mkdir dir="${build.dir}/classes"/> <mkdir dir="${class.dir}"/> </target> <!--编译java源文件--> <target name="compile" description="编译文件" depends="init"> <echo message="编译文件"/> <!-- 编译 src目录 --> <javac destdir="${class.dir}" encoding="UTF-8" includeantruntime="false" bootclasspath="${java.home}/lib/rt.jar"> <classpath refid="compile.classpath"/> <compilerarg line="${compiler.args}"/> <src path="${src.dir}"/> </javac> <!-- copy src目录 --> <copy todir="${class.dir}"> <fileset dir="${src.dir}"> <patternset refid="compiler.resources"/> </fileset> </copy> </target> <!-- 打成war包, 名称默认为 项目名 --> <target name="war" depends="compile" description="将工程打成war包"> <!-- 删除build下原来的war --> <delete dir="${build.dir.war}/**" /> <war destfile="${build.dir}/${war.name}.war" > <!-- 拷贝WebContent --> <fileset dir="WebContent"> <include name="**"/> <exclude name="lib/*.*" /> </fileset> <!-- 拷贝build/classes下的class文件 --> <classes dir="${class.dir}"/> </war> <!-- 输出war位置 --> <echo message="${build.dir}/${war.name}.war"/> </target> <!-- 显示可选任务,并接受用户的选择 --> <target name="usage"> <echo message="${project.name}"/> <echo message="------------------------------------------------------"/> <echo message=""/> <echo message="可选Target:"/> <echo message=""/> <echo message="deploy --> Deploy Project to server"/> <echo message="compile --> 编译Java文件并复制资源文件"/> <echo message="clean --> 清除环境"/> <echo message=""/> <input message="请选择一个Target" validargs="deploy,compile,clean" addproperty="ant.task"/> </target> </project>
使用maven构建结果输出: