`
weixl
  • 浏览: 22428 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

在使用svn或vss时,更新文件较多,编程实现打jar补丁包的方法

阅读更多

    发生的原因是这样的:

    系统上线或在上线前测试,每次bug修改后,都采用补丁包的方法,打个jar包后解压,更新到相应的服务器目录上去,当更新文件比较多的时候,就会发现用鼠标一个一个选择文件后右键,export - jar file 很麻烦,于是想写个程序自动打包。

    原理很简单,当使用svn 或 vss 时候,我们check out 了某些文件做修改,它们是可写的,即 canWrite(). 只需要把需要打包的文件根目录,或源码根路径,例如com为 java 源码包根路径,jsp 为 jsp文件跟路径,copy到某个文件夹下面。例如 c:\\xxx,然后把本地不是canWrite()的文件删除即可,这样获得的即为 用eclipse 或 myeclipse 打完 jar 包然后解压缩后的效果。

 

     代码如下(以 jsp 文件为例,java代码由于需要找到class文件,一般都在web-inf\classes下面,中间需要做个目录或文件转换,用java文件来判断其对应的class文件是否应该被删除,将java文件的目录前面加上web-inf\classes目录找到class文件做删除操作):

 

import java.io.File;
import java.util.Date;

public class CreateJarPackage
{
    public static void main(String[] args){
        System.out.println("begin time at " + new Date());
        File file = new File("c:\\weixl");
        createJarPackage(file);
        System.out.println("end time at " + new Date());
    }
   
    public static void createJarPackage(File file){
        if(file.isDirectory()){
            File[] subFile = file.listFiles();
            if (subFile.length == 0) {
                file.delete(); //删除空的目录
            }
            for (int i = 0; i < subFile.length; i++) {
                createJarPackage(subFile[i]);
            }
        }else{
            //删除只读的文件
            if(!file.canWrite()){
                file.delete();
            }
        }
    }

}

 

   

    

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics