jenkis 部署 配置

部署什么的 很简单大家应该都明白

1去官网下个war

2 ubuntu 

wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -  
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'  
sudo apt-get update  
sudo apt-get install jenkins


jekins 的主目录是/var/lib/jenkins

下面的workspace 是他默认的checkdown目录

安装后会默认启动 

如果想改端口那么更改/etc/init.d/jenkins.sh 里面的8080端口就行

启动起来后 去系统设置里面设置svn版本和地址 账户名密码 jdk

然后新建项目

    注意Item名称  就是你后来checkdown下来workspace下的文件夹名称(最好别中文)

然后下一步   进入配置项目的 页面

丢弃旧的构建 选上(多少天自己设置)

源码管理  选       Subversion      

                                Repository URL 填写自己的svn地址

                                Local module directory (optional) 这个是 /workspace/XXXXX/检出的代码   (其中的XXXX)

                            没说的 默认

构建触发器  选择Poll SCM  当svn有提交的时候  构建

                        时间间隔 15 * * * *
                                  去抓取svn更新记录的时间间隔    15分钟 后面依次是 小时 天 月 年

在最下面 你会看到增加构建步骤

选择 execute shell    然后填入 想要 在构建后执行的 linux脚本 命令

                     比如  ant后 移动war包 然后 重启tomcat

                          

ant

BUILD_ID=656412

/opt/temp/tomcat/bin/shutdown.sh    

rm -rf /opt/temp/tomcat/webapps/ROOT

cp -f MobileServer.war /opt/temp/tomcat/webapps/ROOT.war

sleep 5

/opt/temp/tomcat/bin/startup.sh


                              需要注意 build_id 随便填  中间需要睡眠5秒  这样才能执行成功 启动tomcat命令

在tomcat里conf下的tomcat-users.xml 需要开启命令操作tomcat

 <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
  <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>


最后 献上  ant 的build.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!-- 定义一个工程,默认任务为warFile。 -->
<project name="MobileServer" default="warFile" basedir=".">
    <!-- 导入配置信息-->
    <property file="build.properties"/>

    <!-- 项目名称 -->
    <property name="webapp" value="${webapp.name}"/>
    <!-- 定义属性,打成war包的名称。 -->
    <property name="warFileName" value="${web.war}"/>

    <!-- tomcat配置信息 -->
    <property name="tomcat-home" value="${tomcat.home}"/>
    <property name="remote-url" value="${tomcat.url}"/>
    <property name="username" value="${tomcat.username}"/>
    <property name="password" value="${tomcat.password}"/>
    <property name="path" value="${tomcat.context}"/>

    <path id="catalina-ant-classpath">
        <fileset dir="${tomcat.home}/lib">
            <include name="catalina-ant.jar"/>
            <include name="tomcat-coyote.jar"/>
            <include name="tomcat-util.jar"/>
        </fileset>
        <fileset dir="${tomcat.home}/bin">
            <include name="tomcat-juli.jar"/>
        </fileset>
    </path>

    <!-- 定义路径,编译java文件时用到的jar包。 -->
    <path id="project-classpath">
        <fileset dir="WebRoot/WEB-INF/lib" includes="*.jar" />
        <fileset dir="${tomcat-home}/lib" includes="*.jar" />
    </path>

    <!-- Configure the custom Ant tasks for the Manager application -->
    <target name="_def_tomcat_tasks">
        <!-- tasks: deploy,undeploy,reload,stop,start,list,roles,resources -->
        <taskdef name="deploy"    classname="org.apache.catalina.ant.DeployTask" classpathref="catalina-ant-classpath"/>
        <taskdef name="list"      classname="org.apache.catalina.ant.ListTask" classpathref="catalina-ant-classpath"/>
        <taskdef name="reload"    classname="org.apache.catalina.ant.ReloadTask" classpathref="catalina-ant-classpath"/>
        <taskdef name="resources" classname="org.apache.catalina.ant.ResourcesTask" classpathref="catalina-ant-classpath"/>
        <!-- <taskdef name="roles"     classname="org.apache.catalina.ant.RolesTask" classpathref="catalina-ant-classpath"/> -->
        <taskdef name="start"     classname="org.apache.catalina.ant.StartTask" classpathref="catalina-ant-classpath"/>
        <taskdef name="stop"      classname="org.apache.catalina.ant.StopTask" classpathref="catalina-ant-classpath"/>
        <taskdef name="undeploy"  classname="org.apache.catalina.ant.UndeployTask" classpathref="catalina-ant-classpath"/>
    </target>

    <!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 -->
    <target name="clean">
        <delete dir="${basedir}/build" />
        <mkdir dir="${basedir}/build" />
    </target>

    <!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。 -->
    <target name="compile" depends="clean">
        <javac srcdir="${basedir}/src" destdir="${basedir}/build" includeantruntime="false" encoding="utf-8"  debug="on" >
            <classpath refid="project-classpath">
            </classpath>
        </javac>
    </target>

    <!-- 定义默认任务,将class文件集合成jar包。 -->
    <target name="warFile" depends="compile">
        <!-- 删除原有war包。 -->
        <echo message="delete ${basedir}/${warFileName}"/>
        <delete dir="${basedir}/${warFileName}" />

        <!-- 建立新war包。 -->
        <war destfile="${basedir}/${warFileName}" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
            <!-- 将非jar和非class文件拷贝到war包的对应路径下。 -->
            <fileset dir="${basedir}/WebRoot">
                <include name="**/**.*" />
                <exclude name="**/*.jar"/>
                <exclude name="**/*.class"/>
            </fileset>
            <!-- 将jar和class文件拷贝到war包的对应路径下。 -->
            <lib dir="${basedir}/WebRoot/WEB-INF/lib" />
            <classes dir="${basedir}/build" />
        </war>
    </target>

    <target name="redeploy" description="Remove and Install web application" depends="_def_tomcat_tasks">
        <antcall target="stop"/>
        <antcall target="undeploy"/>
        <antcall target="deploy"/>
    </target>

    <target name="deploy" description="Install web application" depends="_def_tomcat_tasks,warFile">
        <echo message="${remote-url}"/>
        <echo message="${username}"/>
        <echo message="${password}"/>
        <echo message="${warFileName}"/>
        <deploy url="${remote-url}" username="${username}" password="${password}" path="${path}" war="${warFileName}" update="true" />
    </target>

    <target name="undeploy" description="Remove web application" depends="_def_tomcat_tasks">
        <undeploy url="${remote-url}" username="${username}" password="${password}" path="${path}" />
    </target>

    <target name="reload" description="Reload web application" depends="_def_tomcat_tasks">
        <echo message="reload" />
        <reload  url="${remote-url}" username="${username}" password="${password}" path="${path}"/>
    </target>

    <target name="stop" description="stop web application" depends="_def_tomcat_tasks">
        <echo message="stop" />
        <stop  url="${remote-url}" username="${username}" password="${password}" path="${path}"/>
    </target>

</project>

别忘了 javac标签里的  debug="on"
   只有这样 才能 让spring mvc的注解参数 省略@标签(模拟在eclipse里 编译) 否则报错

build.properties

webapp.name=MobileServer
web.root=web
web.war=MobileServer.war
increment.file=patch.txt

javac.debuglevel=source,lines,vars
javac.target=1.6
javac.source=1.6
javac.debug=true

tomcat.home=/opt/temp/tomcat
tomcat.url=http://192.168.1.250:8888/manager/text
tomcat.username=admin
tomcat.password=admin
tomcat.context=/



这里只用了ant 来编译文件    至于那个delpoy 不好使 不知道为什么  总报错  所以才决定用 shell脚本去重启的  ant以后研究

还有一种决绝方案 就是 提交编译后的class文件 那么  jenkins 就会连同编译后的文件 一起部署了


这里要感谢 安明 童鞋的 ant支持  哇咔咔

你可能感兴趣的:(Jenkins)