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 ...
随机推荐
- java第十四次作业
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...
- 201521123023《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己 ...
- **********MySql查询方法重要**********
分析问题要分步,查询每一步的结果,最后连起来 例如下面有四张表让你查询 查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录. 第一部,找到课程编号为3-105的记录中学号为109 ...
- eclipse:eclipse for java EE环境下如何配置tomcat服务器,并让tomcat服务器显示在控制台上,将Web应用部署到tomcat中
eclipse环境下如何配置tomcat 打开Eclipse,单击"Window"菜单,选择下方的"Preferences". 单击"Server& ...
- MySQL的JOIN(五):JOIN优化实践之排序
这篇博文讲述如何优化JOIN查询带有排序的情况.大致分为对连接属性排序和对非连接属性排序两种情况.插入测试数据. CREATE TABLE t1 ( id INT PRIMARY KEY AUTO_I ...
- 走进AngularJS
前 言 xiaoq AngularJS 通过新的属性和表达式扩展了 HTML. 使用起来非常方便. 1. AngularJS的指令与表达式 AngularJS 通过 指令 扩展了 HTML,且通 ...
- 在http请求中的Content-Type
声明:multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息: x-www-form-urlencoded:只能上传键值对,并且键值对都是间 ...
- 机器学习之numpy库中常用的函数介绍(一)
1. mat() mat()与array的区别: mat是矩阵,数据必须是2维的,是array的子集,包含array的所有特性,所做的运算都是针对矩阵来进行的. array是数组,数据可以是多维的,所 ...
- Python多线程练习(threading)
这几天学习python多线程的时候,试了几次thread模块和threading模块,发现thread模块非常的不好用.强烈不建议大家使用thread,建议使用threading模块,此模块对thre ...
- JavaWeb(六)之MVC与三层架构设计
前言 这段时间要学习hadoop,但是也希望把自己的web知识复习起来.所以花自己休息的时间把这些web的知识好好的巩固一下!没有什么可以阻挡我前进的脚步. 首先我们先了解一下: C/S:客户端 / ...