eclipse+fileSyncPlugin+svn+jenkins+tomcat
实现一个想法,把项目部署在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 - $sn
#sudo -u tomcat /usr/local/apache/tomcat-web/bin/shutdown.sh
fi
tempProgram="/home/vince/tomcat-web/work/Catalina/localhost/XXXXXXX/"
if [ -d "$tempProgram" ];
then
rm -rf "$tempProgram"
fi
jenkins调用的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>
配置结束。(具体配置要视具体情况而定……)
代码编写完成后,需要在本地的同步文件夹提交代码到svn,然后使用jenkins构建项目
这样一来,eclipse就仅仅当做编辑器来用了,调试程序的话可用eclipse的远程debug(具体参考 :http://www.cnblogs.com/Vince-blogs/p/7497011.html)
THE END.
eclipse+fileSyncPlugin+svn+jenkins+tomcat的更多相关文章
- Jenkins+svn+ant+tomcat持续集成
转载自 http://www.cnblogs.com/liuhaixia/p/7267473.html Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作.通过Jenkins+ ...
- Jenkins +svn +maven +tomcat+ ansible 自动化批量部署
Jenkins +svn +maven +tomcat+ ansible 自动化批量部署 一.部署svn yum install subversion 先创建目录 mkdir /home/svn 创建 ...
- Linux记录-SVN+Jenkins+jdk+maven自动化集成部署
1.svn部署 yum -y install subversion svnserve --version 查看版本 mkdir -p /usr/app/svn svnadmin create /usr ...
- Eclipse从SVN检出maven项目后的一些配置
Eclipse从SVN检出maven项目后,会发现它只是一个普通的java project,如图: 这里我们需要把它转成maven-webapp,并调整相关属性,设置运行环境,关联相关jar目录等. ...
- Eclipse 安装 SVN 的在线插件
这是继上次svn 客户端与服务器安装后的如何在Eclipse 环境下在线安装 SVN插件,我的Eclipse版本是4.50 SVN的在线安装 下面为大家提供SVN 的在线安装教程.下面是安装的 详细过 ...
- Eclipse安装SVN插件
Eclipse 安装最新SVN插件 下载地址 下载最新的Eclipse,我使用的是eclipse-jee-kepler-SR2-win32-x86_64.zip(Eclipse IDE for Jav ...
- Eclipse安装svn插件的几种方式
Eclipse安装svn插件的几种方式 1.在线安装: (1).点击 Help --> Install New Software... (2).在弹出的窗口中点击add按钮,输入Name(任意) ...
- Eclipse 调试的时候Tomcat报错启动不了
Eclipse 调试的时候Tomcat报错启动不了 1.把所有的断点删掉 2.清理工程 3.在Tomcat里面删除项目 4.删除Tomcat的配置,重新配置一下
- eclipse安装svn和maven插件以及m2e-extras
相关介绍: 1.SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Su ...
随机推荐
- 201521123038 《Java程序设计》 第一周学习总结
201521123038 <Java程序设计> 第一周学习总结 1.本章学习总结 本周已掌握Java配置,初步认识Java运行软件和基本语法. Java语言语法和C语言基本类似,部分不同. ...
- 多线程面试题系列(12):多线程同步内功心法——PV操作上
上面的文章讲解了在Windows系统下实现多线程同步互斥的方法,为了提高在实际问题中分析和思考多个线程之间同步互斥问题的能力,接下来将讲解PV操作,这也是操作系统中的重点和难点.本文将会先简要介绍下P ...
- Linux-hexdump命令调试event驱动—详解(13)
hexdump: 查看文件的内容,比如二进制文件中包含的某些字符串,通常用来调试驱动用 1.调试 键盘驱动 讲解 当我们insmod挂载了键盘驱动后,找到键盘驱动被放在event1设备里, 此时没有按 ...
- 我和Python
记不得是年,我在网易云课堂上乱逛,看到了哈佛大学的<计算机编程导论>,这门课讲的正好是Python,讲的啥内容已经记不得多少了,因为是全英文教学,我只能慢慢的看字幕,一集得看个好几遍. 我 ...
- 纯css隐藏移动端滚动条解决方案(ios上流畅滑动)
纯css隐藏移动端滚动条解决方案(ios上流畅滑动) html代码展示(直接复制代码保存至本地文件运行即可): <!DOCTYPE html> <html lang="en ...
- Qt 打开文件的默认路径 QFileDialog::getOpenFileName()
为了说明QFileDialog::getOpenFileName()函数的用法,还是先把函数签名放在这里: QString QFileDialog::getOpenFileName ( ...
- Spark组件
1,Application application(应用)其实就是用spark-submit提交的程序.比方说spark examples中的计算pi的SparkPi.一个application通常包 ...
- ObjectSNMP
下面的例子,就是使用ObjectSNMP获取RFC1213-MIB的例子:其中的system和ifTable对象就是对应的SNMPMIB中的system组合interface中的ifTable表. p ...
- 运行Chromium浏览器缺少google api密钥无法登录谷歌账号的解决办法
管理员身份运行CMD,然后依次输入以下三行内容: setx GOOGLE_API_KEY "AIzaSyAUoSnO_8k-3D4-fOp-CFopA_NQAkoVCLw"setx ...
- 利用python多线程实现多个客户端与单个服务端的远程ssh
本次实验设计两个方面的代码,第一个是客户端,代码如下: import os from socket import * c = socket(AF_INET,SOCK_STREAM) c.connect ...