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

相关文章
相关标签/搜索