码迷,mamicode.com
首页 > 系统相关 > 详细

eclipse+fileSyncPlugin+svn+jenkins+tomcat

时间:2017-09-13 01:41:51      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:1.5   sock   一个   war   pac   项目   16px   tom   default   

  实现一个想法,把项目部署在linux服务器上,在本地的eclipse代码更新后,通过svn+jenkins自动同步到服务器,

然后通过eclipse远程debug项目。这样是不是就解决了在本地跑项目,导致电脑变卡的问题技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享技术分享…………^o^

 

  实现思路 : 本地项目——>本地同步文件夹——>svn服务器——>jenkins进行项目构建——>重启tomcat

 

  好了,不多说了,不嫌麻烦的童鞋可以试一试……

  

  环境准备

  (1)  在eclipse中安装fileSyncPlugin插件

    具体安装参考 : http://andrei.gmxhome.de/filesync/examples.html

  (2) 在服务器上配置svn资源库

    具体参考 :http://www.cnblogs.com/Vince-blogs/p/7477199.html

  (3)  在服务器上安装jenkins

     去jenkins官网安装war包,放到服务器上tomcat的webapps目录里面

  

  配置 :

   (1) 把你的项目拷贝到另外的一个目录,把目录上传到svn

   (2) 在eclipse中的fileSyncPlugin插件安装好之后,右键点击你的项目,选择Properties

      然后点击File synchronization,然后Add Folder选择你项目要更新的文件夹,

     目的文件夹选择上边步骤的文件夹

  (3) 配置jenkins,我创建了两个构建item。一个用来执行更新服务器tomcat中的class、配置文件,此操作需要重启tomcat;

     一个用来更新 jsp,js,style文件等,不需要重启服务器中的tomcat。    

    --------多图预警--------

    其中更新并重启tomcat的item配置如下

技术分享

    具体配置如下,仅供参考 :

                    技术分享

    技术分享

                技术分享

 

    其中,shell脚本shutdown.sh执行操作的是关闭tomcat,清除缓存,具体如下

#!/bin/bash
program=tomcat-web
sn=`ps -ef | grep $program | grep -v grep |awk {print $2}`  #获得进程端口号
if [ "${sn}" != "" ];    #如果为空,表示进程未启动
        then
                echo "${sn}"
                kill -9 $sn
                #sudo -u tomcat /usr/local/apache/tomcat-web/bin/shutdown.sh
fi
tempFRDBase="/home/vince/tomcat-web/work/Catalina/localhost/WebSocketTest/"
if [ -d "$tempFRDBase" ];
        then
             rm -rf "$tempFRDBase"
fi

 

    Ant脚本如下

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

<project name="XXXXX" default="noRestartDeploy" basedir=".">

    <echo message="prepare for work -----" />
    
    <!--  定义 项目名称  -->
    <property name="project.name" value="XXXXX" />
    <!--  定义 web 容器的部署路径  -->
    <property name="localWebServer.home" value="/home/vince/tomcat-web" />
    <!--  定义 文件输出路径  -->
    <property name="outFileDir" value="${localWebServer.home}/webapps" />

    <!-- 初始化删除classes文件 -->  
    <target name="restartInit">
        <echo message=" ====== 初始化 ======" />
        <echo message=" ====== 删除tomcat项目class文件,路径 : ${outFileDir}/${project.name}/WEB-INF/classes/com ======" />
        <delete dir="${outFileDir}/${project.name}/WEB-INF/classes/com" />
    </target>

    <!-- 初始化删除操作 -->  
    <!-- 具体的删除操作视要更新的目录而定 --> 
    <target name="noRestartInit">
        <echo message=" ====== 初始化 ======" />
        <echo message=" ====== 删除要更新的内容(1) :${outFileDir}/${project.name}/js  ======" />
        <delete dir="${outFileDir}/${project.name}/js" />
        <echo message=" ====== 删除要更新的内容(2) :${outFileDir}/${project.name}/styles  ======" />
        <delete dir="${outFileDir}/${project.name}/styles" />
        <echo message=" ====== 删除要更新的内容(3) :${outFileDir}/${project.name}/WEB-INF/views  ======" />
        <delete dir="${outFileDir}/${project.name}/WEB-INF/views" />
    </target>
    
    <!-- 更新class源文件 -->
    <target name="restartDeploy" depends="restartInit">
        <echo message=" ====== 更新源码 ======" />
        <mkdir dir="${outFileDir}/${project.name}/WEB-INF/classes/com" />
        <copy todir="${outFileDir}/${project.name}/WEB-INF/classes/com" overwrite="true">
            <fileset dir="./com" />
        </copy>
        <echo message=" ====== 代码更新完成,准备重启tomcat ======" />
    </target>

    <!-- 不重启,更新非classes文件  -->  
    <target name="noRestartDeploy" depends="noRestartInit">
        <echo message=" ====== 更新代码 ======" />
        <mkdir dir="${outFileDir}/${project.name}/js" />
        <mkdir dir="${outFileDir}/${project.name}/styles" />
        <mkdir dir="${outFileDir}/${project.name}/WEB-INF/views" />
        <copy todir="${outFileDir}/${project.name}/js" overwrite="true">
            <fileset dir="./js" />
        </copy>
        <copy todir="${outFileDir}/${project.name}/styles" overwrite="true">
            <fileset dir="./styles" />
        </copy>
        <copy todir="${outFileDir}/${project.name}/WEB-INF/views" overwrite="true">
            <fileset dir="./WEB-INF/views" />
        </copy>
        <echo message=" ====== 代码更新完成 ======" />
    </target>

</project>

  配置结束。(具体配置要视具体情况而定……^O^)  

 

  代码编写完成后,需要在本地的同步文件夹提交代码到svn,然后使用jenkins构建项目

  这样一来,eclipse就仅仅当做编辑器来用了,调试程序的话可用eclipse的远程debug(具体参考 : http://www.cnblogs.com/Vince-blogs/p/7497011.html

  

  THE END.

  

  

  

  

 

eclipse+fileSyncPlugin+svn+jenkins+tomcat

标签:1.5   sock   一个   war   pac   项目   16px   tom   default   

原文地址:http://www.cnblogs.com/Vince-blogs/p/7513020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!