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.
最新文章
- 引用类型(object、array)
- PCI Express(六) - Simple transactions
- apache安装错误error: APR not found解决办法
- DBLINK 创建的注意事项
- C++ Base64 编码 解码
- Idea 安装 lombok
- Bootstrap列表
- 快速理解webStroage
- POJ 2942.Knights of the Round Table (双连通)
- Android学习笔记:FrameLayout布局基础
- SilkTest Q&;A 6
- 几个可用于数据挖掘和统计分析的java库
- Java中Double保留后小数位的几种方法
- winform音频播放器(有声小说[凡人修仙传])
- LDA
- oracle 触发器,当一个表更新或插入时将数据同步至另个库中的某个表中
- 「Python」为什么Python里面,整除的结果会是小数?
- 深度 | AI芯片终极之战
- 查看python内部模块命令,内置函数,查看python已经安装的模块命令
- RabbitMQ 消息中间件