?? ? ?在维护项目时,由于历史的原因,项目不能使用在myeclipse中启用应用服务器进行热部署开发,只能在外面使用jboss远程关联部署,这个改动后热部署就是个问题了,本来公司内部有个eclipse同步插件,不过太难用。
?? ? ?在google里搜了一下有个jnotify开源的代码,是使用c++写的,提高java的jni接口,试了一下demo觉得性能不错,自己封装了一下,使用bat启动监控并同步。使用方法如下:
设置环境变量
????解压bigfilesync-1.0.zip到电脑的任意目录下,比如D:\bigfilesync-1.0,然后将D:\bigfilesync-1.0\bin设置到系统的环境变量path中。
命令列表:
sync [-s] source [-d] destination [-e] exclude -s 源目录[required] -d 目标目录[required] -e 排除的目录或文件,多个之间用逗号分隔[option]
- 监视source目录下的文件变化,并同步到destination目录,排除exclude包含的文件或目录。
命令使用方法1:
sync -s D:\qq -d D:\mm
- 监视D:\qq目录下的文件变化,并同步到D:\mm目录。
命令使用方法2:
????多个目录的监控(多个目录之间用逗号分隔,确保目录或文件的名称不能包含逗号),并同步到一个目录下。
sync -s D:\ff,D:\qq -d D:\mm
- 监视D:\ff,D:\qq两个目录下的文件变化,并同步到D:\mm目录。
命令使用方法3:
????多个目录的监控(多个目录之间用分号分隔,确保目录或文件的名称不能包含分号),并分别同步到相应的目录下。
sync -s D:\ff;D:\qq -d D:\mm;D:\nn
- 监视D:\ff,D:\qq两个目录下的文件变化,并将D:\ff文件的变化同步到D:\mm目录,D:\qq文件的变化同步到D:\nn目录。
命令使用方法4:
????方法2和方法3的混合使用。
sync -s D:\ff,D:\qq;D:\bb -d D:\mm;D:\nn
- 监视D:\ff,D:\qq,D:\bb三个目录下的文件变化,并将D:\ff,D:\qq文件的变化同步到D:\mm目录,D:\bb文件的变化同步到D:\nn目录。
命令使用方法5:
????排除不需要同步的目录或文件。
sync -s D:\qq -d D:\mm -e .svn,target
- 监视D:\qq目录下的文件变化,并同步到D:\mm目录,排除.svn,target目录或文件的变化的同步。
- 如果排除同步的是目录,则此文件夹下所有文件或子文件夹的变化都不同步。
全局配置文件exclude.txt
????%bigfilesync_home%\config\exclude.txt设置全局排除的目录或文件,多个目录或文件回车换行输入。
源码编译
????bigfilesync源码使用maven进行管理jar依赖,其中依赖的一个jar没有在maven中央仓库中,所有编译、打包源码前需要安装jar到本地maven仓库,在jnotify-0.93.jar所在的文件夹使用以下命令:
mvn install:install-file -DgroupId=net.contentobjects -DartifactId=jnotify -Dversion=0.93 -Dfile=jnotify-0.93.jar -Dpackaging=jar
- jnotify-0.93.jar在bigfilesync-1.0.zip\lib目录下。