最近手里好几个项目都在频繁的更新,我一直使用svn的patch制作补丁,但是因为class是不受svn管理的,每次更新的类都要手动的一个一个复制出来,少的时候没感觉怎么样,最近太多了,弄的我焦头烂额的,所以写了个小东西,自动根据已有的java文件,找对应的class复制过来。这样果然方便多了。
package com.radium.createpatch;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* 创建补丁
*
* @author XieLei
* @update 2011-11-9 下午2:15:45
*/
public class CreatePatch {
static String path1 = "C:\\Users\\Radium-Work\\Desktop\\2011-11-9 84-140\\WebRoot\\WEB-INF\\classes";
static String path2 = "D:\\WorkSpace\\neuedu-metallurgy\\trunk\\neuedu-metallurgy\\WebRoot\\WEB-INF\\classes";
public static void main(String[] args) {
File file1 = new File(path1);
File file2 = new File(path2);
if (file1.exists() && file2.exists()) {
createPath(file1);
}
System.out.println("共复制:"+count);
}
static File tempFile1;
static File tempFile2;
static String tempStr;
static int count = 0;
public static void createPath(File file) {
if (file.exists()) {
File[] files = file.listFiles();
for (File f : files) {
if (f.isDirectory()) {
createPath(f);
} else {
if (f.getName().endsWith(".java")) {
count++;
tempStr = path2 + f.getPath().substring(path1.length(), f.getPath().length());
tempStr = tempStr .substring(0, tempStr.lastIndexOf(".")) + ".class";
tempFile1 = new File(tempStr);
tempFile2 = new File(f.getPath().substring(0, f.getPath().lastIndexOf("\\")+1)+f.getName().subSequence(0, f.getName().lastIndexOf(".")) +".class");
if(tempFile1.exists()){
try {
copyFile(tempFile1,tempFile2);
f.delete();
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println(f.getName());
}
}
}
}
}
/**
* 将F1复制到F2
* @param f1
* @param f2
* @return
* @throws Exception
* @author XieLei
* @update 2011-11-9 下午2:42:09
*/
public static void copyFile(File f1, File f2) throws Exception {
int length = 2097152;
FileInputStream in = new FileInputStream(f1);
FileOutputStream out = new FileOutputStream(f2);
byte[] buffer = new byte[length];
int ins = 0;
while (true && ins != -1) {
ins = in.read(buffer);
if(ins != -1)
out.write(buffer, 0, ins);
}
in.close();
out.flush();
out.close();
}
}
分享到:
相关推荐
快速导出class文件插件 集合svn
利用svnkit操作svn,实现对版本修改文件的导出,可以导出多个版本,.java文件将会在本地取出.class文件,导出后压缩成压缩包,主要用于服务器上的资源更新,不需要开发人员去找到对应的.class文件或其他文件压缩然后...
介绍了版本管理软件subversion和TortoiseSvn的安装及使用方法,以及patch文件的介绍和使用方法。
NULL 博文链接:https://mojianpo.iteye.com/blog/1153939
可以快速的清除所有的.SVN文件 可以快速的清除所有的.SVN文件
用来删除SVN文件用来删除SVN文件用来删除SVN文件用来删除SVN文件
用java实现的基于http协议的svn程序
java svn 插件和svn客户端java svn 插件和svn客户端
每次整理需要部署文件的时候,都会发现要做的工作很多,而且效率很低,因此想到开发个工具,快速提取出这些文件。这个工具完全免费的,只适用于java,增量部署项目。与1.x版本比起来增加了通过svn时间自动判断修改的...
Windows下,svn提交时限制单个文件大小
java源代码,用于删除svn目录下的所有svn文件名包含svn的文件。可以让工程恢复到没有加入到svn时的状态。 支持命令行删除,也可在修改程序自己删除
import java.io.File; public class Test { public static void main(String[] args) { File directory = new File("D://workspace//代码文件夹名称"); deleteSvnDirectory(directory); } public ...
介绍下这个打包工具 把本次你改动的java工程下的文件对应的class文件自动打包,然后热部署发布即可 如果你需要频繁改动java代码,热发布几个文件到服务器上,你会怎么做呢? 没有工具的人会手动拷贝目录 然后到...
纯java操作svn--svnkit API!
实现读取svn上的项目文件,并且返回文件的内容,可以很方便的做到实时浏览文件内容,亲测有效!
是否遇到过公司里的sx向svn提交了不该提交的文件?.sdf debug release 等等,是否对此感到崩溃?!是否svn仓库已经占用了大量的磁盘空间? 使用本图形化工具帮助你将这些文件彻底地从svn中删除。 先导出svn仓库 ...
java 操作svn信息需要用到的
压缩文件中有个注册表文件,双击执行可添加右键快速执行。找到需要清理并带有svn文件夹的目录,然后右键点击Delete Svn Folders便可快速清理此目录中的全部svn文件夹。
java系列:svn
1.svn提交过程中出现错误的时候,可以使用这个文件进行对svn文件的删除 2. 需要双击运行,注册表 3.成功之后,文件夹右键可以看到 delete SVN Folders 祝大家使用顺利