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構建結果輸出: