jenkins+mawen+svn實現自動化構建部署

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/ 服務器

wKioL1ZnjMvRPHFuAABqEK9lUfs256.png



        將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

wKiom1ZnjpzzXphlAAAiuXj-vhM985.png


        配置系統設置:


wKiom1ZnjyGAt_ixAABObZvu1kA034.png

##################################################


wKioL1Znj6-wnaC6AAA1KVw3Kjc170.png


            默認的主目錄是放在/root/.jenkins/目錄下

wKioL1Znj-_jcJRwAAAX0PI2xmY520.png

###################################################



            安裝jdk和mawen:

wKioL1ZnkHmQ6xuSAAArEvBMyQI576.png

####################################################

wKioL1ZnkO7ilsuTAAAiUCoU8kM636.png

####################################################

wKiom1ZnkMKB3GLYAAAitNHeav4186.png

 

#####################################################

           安裝mawen:

                下載地址:http://maven.apache.org/download.cgi

wKiom1Znks3R349AAABRhog7tgg213.png

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


            點擊應用,保存:

wKiom1Znk7XhTOXLAAAfAhVjwTI532.png




        建立第一個任務:

wKiom1ZnlFjAobZDAAAkG2SYe3M444.png

#####################################################

wKiom1ZnlFniYFUEAABOzpMYXw8896.png

#####################################################

wKiom1Zpdw-QjwodAAAytgnkpp8619.png

######################################################

            配置svn:

wKiom1ZnltfAX5IFAAAxp-JAzDA054.png

#####################################################

wKiom1ZnltiRPP3rAAA4QgE5_G0885.png

#####################################################

wKioL1ZyLv2RE6oiAABCGQ0AC8s976.png

######################################################

wKioL1Znl0mjNku3AAAmgDrtMP8833.png

######################################################

            執行shell命令:

wKiom1ZnltiT0EpDAAA1Vqu9MQA225.png

#######################################################

wKiom1ZnltmQi7IvAAA7H2Vfo1E261.png

########################################################

wKioL1Znl0qAROL2AAAjS7EhgRk695.png



        優化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

wKiom1Znmp_R6F2AAAAWJYpQA40530.png






        開始構建:

wKioL1Znm3uCw0WEAAA_Z-HkCbg944.png

############################################################

wKiom1Znmwrye0owAAAqOcNs2VE847.png

#############################################################

            構建成功:

wKioL1Znm9yh6GjvAAA_UxgTaIo092.png




        建立jenkins登錄用戶:


wKioL1ZnnWewmr_SAABP_OeosgI613.png

############################################################

wKiom1ZnnPfCLSlDAAB8H5oecLo011.png

###############################################################

wKioL1ZnnWjRetyNAAB7-5yaNNw549.png

################################################################

wKiom1ZnnaKwbkfUAAApFbYmSoU055.png

################################################################

wKioL1ZnnhOSWAIEAAAflz7e_y0251.png

#################################################################

wKiom1ZnnaOzMR8OAAAjlgHphV4033.png




使用ANT構建結果輸出:

wKiom1ZymOLRlYTdAABhnIL4o1E901.png

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           --&gt; Deploy Project to server"/>
        <echo message="compile          --&gt; 編譯Java文件並複製資源文件"/>
        <echo message="clean            --&gt; 清除環境"/>
        <echo message=""/>
        <input message="請選擇一個Target" validargs="deploy,compile,clean" addproperty="ant.task"/>
    </target>

</project>




使用maven構建結果輸出:

wKioL1ZymY_zXDZ7AAA4jcgbupo332.png

相關文章
相關標籤/搜索