- 浏览: 599965 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
主要代码
import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class Main { private ConfigUtil util; private int count; private String zipName; public Main() { util = ConfigUtil.getInstance(); } public static void main(String args[]) throws Exception { Main t = new Main(); t.doCopy(); System.out.println(); System.out.println((new StringBuilder("total file: ")).append(t.count).toString()); System.out.println((new StringBuilder("created zip file: ")).append(t.zipName).toString()); } private void doCopy() throws IOException { //读取需要打包的文件 File f = new File("file.properties"); BufferedReader reader = new BufferedReader(new FileReader(f)); zipName = (new StringBuilder(String.valueOf(util.getDescFolder()))).append(util.getZipFileName()).toString(); //准备Zip包 进行打包 ZipOutputStream zipStream = new ZipOutputStream(new FileOutputStream(zipName)); File temp = null; for (String line = null; (line = reader.readLine()) != null;) { line = line.trim(); if (line.length() != 0) { if (line.startsWith(util.getSrcFolder())) line = (new StringBuilder(String.valueOf(util.getClassFolder()))).append(line.substring(util.getSrcFolder().length())).toString(); if (line.endsWith(".java")) { line = line.replaceFirst("\\.java", "\\.class"); temp = new File(line); copySinleFile(zipStream, temp); File files[] = temp.getParentFile().listFiles(); File afile[]; int j = (afile = files).length; for (int i = 0; i < j; i++) { File child = afile[i]; if (isRelatedClassFile(child, temp)) copySinleFile(zipStream, child); } } else { temp = new File(line); if (temp.isDirectory()) copyChildFiles(zipStream, temp); else copySinleFile(zipStream, temp); } } } reader.close(); zipStream.close(); } private void copySinleFile(ZipOutputStream zipStream, File src) throws IOException { String desc = src.getAbsolutePath().substring(util.getRootFolder().length()); zipStream.putNextEntry(new ZipEntry(desc)); FileInputStream fis = new FileInputStream(src); byte buf[] = new byte[1024]; for (int i = 0; (i = fis.read(buf)) != -1;) zipStream.write(buf, 0, i); zipStream.closeEntry(); fis.close(); count++; System.out.println((new StringBuilder("add File: ")).append(desc).toString()); } private void copyChildFiles(ZipOutputStream zipStream, File folder) throws IOException { File files[] = folder.listFiles(); File afile[]; int j = (afile = files).length; for (int i = 0; i < j; i++) { File f = afile[i]; if (f.isDirectory()) copyChildFiles(zipStream, f); else copySinleFile(zipStream, f); } } private boolean isRelatedClassFile(File child, File temp) { String childName = child.getName(); boolean value = false; if (childName.endsWith(".class")) { childName = childName.substring(0, childName.length() - 6); String tempName = temp.getName().substring(0, temp.getName().length() - 6); value = childName.startsWith((new StringBuilder(String.valueOf(tempName))).append("$").toString()); } return value; } }
发表评论
文章已被作者锁定,不允许评论。
-
java WeakHashMap学习(key是弱引用)
2018-06-21 09:31 1232在Java集合中有一种特殊的Map类型:WeakHashMap ... -
java HashMap TreeMap(key顺序) LinkedHashMap(插入顺序)学习
2018-06-07 10:27 953java为数据结构中的映射定义了一个接口java.util.M ... -
java RESTful 详解
2018-04-27 11:35 643(1)每一个URI代表一种资源,独一无二; (2)客户端 ... -
java 通过HttpsUrlConnection访问接口数据
2018-04-19 11:25 990server: ssl: key-stor ... -
java 使用多线程的场景总结
2018-04-10 14:35 1704在一个高并发的网站中,多线程是必不可少的。下面先说一下多线程在 ... -
java Enum枚举设置
2018-04-10 10:55 480/** * 数据状态:0:无效,1:有效 **/ ... -
java RestTemplate访问restful服务
2018-03-01 15:02 1622REST的基础知识 当谈论REST时,有一种常见的错误就是将其 ... -
java FYOpenApi实现短信发送
2018-01-02 17:10 11741.配置文件 sms.OpenUrl = http://s ... -
java JSONObject序列化包含Date类型数据的Java对象
2017-12-26 16:31 1617如果Date.class无法进行转换则使用Timestamp. ... -
java 用HttpsURLConnection进行传递中文时错误总结
2017-12-07 16:42 654传递中文时需要用Writer而不是OutputStream ... -
java 内存泄漏
2017-11-27 13:51 4951.内存溢出 out of memory ... -
ActiveMQ 三种发送消息方式(同步,异步,单向)
2017-11-17 10:25 2453MQ 发送普通消息有三种实现方式:可靠同步发送、可靠异步发送、 ... -
java Guava ListenableFuture实现线程回调功能
2017-11-14 10:17 1775java Future具有局限性。在实际应用中,当需要下 ... -
java Curator实现分布式锁
2017-09-05 14:39 1090Curator实现分布式锁主要依赖于zookeeper ... -
java Guava工具集学习(强大)
2017-09-05 10:28 432import java.util.Iterator ... -
java CyclicBarrier进行并发编程
2017-08-25 15:44 673CyclicBarrier允许一组线程相互等待达到一个公共的障 ... -
java 几种性能优化的总结
2017-08-23 14:08 3251、使用StringBuilder 一般 ... -
java 使用kyro进行高性能序列化对象和集合
2017-08-23 14:05 2152import java.io.ByteArrayInp ... -
java 对重复电话号码进行排除的优化(排序和前后对比)
2017-08-22 14:14 7911.先对10万数据排序; 2.对比前后两条数据 ; 3.筛 ... -
ActiveMQ 结合Spring进行数据同步
2017-07-19 15:27 584注意事项hibernate配置文件必须设置自动提交否则不能插入 ...
相关推荐
"JAVA增量包打包工具"就是针对这一需求而设计的专业桌面应用程序,旨在帮助开发者实现自动化、高效的Web项目增量打包和发布。这款工具支持多种版本控制系统,包括Gitee(国内的Git托管平台)、Git和SVN,为多模块...
Java增量更新打包工具是一种在软件开发中非常实用的工具,它能够帮助开发者高效地处理应用程序的更新问题。在传统的更新方式中,用户需要下载整个应用的新版本,这不仅浪费网络资源,也可能因为文件大小而让用户等待...
【svn增量打包小工具】是一种基于Java开发的实用程序,专为IT专业人士设计,用于高效地管理和打包在Subversion(svn)版本控制系统中的代码更改。这个小工具的主要目的是简化版本控制过程,特别是在处理大型项目时,...
`ideploy`就是这样一款专门针对Java Web应用的增量打包工具,它优化了传统的打包流程,提升了开发效率。本文将深入探讨ideploy的功能、工作原理以及如何使用它进行增量打包。 **1. ideploy简介** ideploy是一款专...
增量打包工具是软件开发过程中非常实用的一种工具,它主要用于提高软件发布和更新的效率。在传统的打包过程中,每次发布新版本都需要将整个项目的所有文件重新打包,这不仅消耗时间,而且在网络传输上也浪费了大量的...
增量打包工具patch-generator-desk-v2.0.0是一款针对IT项目,特别是Web应用程序的高效自动化打包解决方案。这款工具旨在简化版本更新过程,通过只打包自上次发布以来更改过的文件,显著减少部署包的大小,从而提高...
Java增量升级工具是一种...总之,Java增量升级工具是Java开发中的一个强大助手,它通过智能分析和打包技术,简化了更新流程,提升了更新效率。了解并熟练掌握这种工具,对于提升软件项目的质量和用户体验具有重要意义。
java 写的根据svn信息生成的增量打包工具类,有部分路径和判断条件需要修改,修改正确后可直接执行main方法运行。
增量打包工具会比较当前目录与上一次打包时的差异,只包含新创建、修改过的文件,而忽略未改变的文件。这种功能在持续集成或版本控制的场景中尤为重要,因为它允许用户快速获取到项目的最新变化,而不必下载整个项目...
适用于Windows 平台需要:microsoft windows based script host 的支持 /* * 根据日期文件比较更新,提取更新文件 **/ var fso = new ActiveXObject("Scripting.FileSystemObject"); //工程路径 ...
本"java增量升级程序.zip"文件主要是基于Subversion(SVN)版本控制系统来实现的增量打包。SVN是一个开源的版本控制系统,用于跟踪项目文件的历史变更,便于团队协作和代码管理。在这个过程中,我们首先需要确保本地...
路径扫描,日期扫描,文件过滤,备注填报,多线程处理速度快, 避免了繁琐的手动打包过程...
1:根据svn提交记录选择需要打增量包的文件进行增量,特别提醒:打包前请使用开发工具对项目进行编译,因为打包是拷贝开发工具编译后的class文件。 2:模拟http请求,主要用于接口调。详情使用说明参见本人csdn博客...
https://blog.csdn.net/zou_hailin226/article/details/82836328 我已经将描述写成教程,需要的下载
在Java领域,Maven是常用的自动打包工具,它可以处理项目的依赖关系,构建工件(如JAR、WAR),并且支持自定义生命周期和插件。 "java_copyFile"这个文件名可能是指工具中用于复制文件的部分,通常在自动打包过程中...
Ant是一个广泛使用的Java项目构建工具,通过XML配置文件定义任务和依赖关系,实现自动化编译、打包、测试等一系列工作。将Cobertura与Ant结合,开发者可以在执行Ant构建时轻松地添加测试覆盖率检查,无需额外的复杂...
这个工具能够自动识别和打包增量内容,进一步可以集成到CI/CD(持续集成/持续交付)系统中,使得每次代码提交后都能自动触发发布流程。 5. **JavaWeb工程**:JavaWeb工程通常包含服务器端Java代码、HTML、CSS、...
java项目增量更新之Eclipse外部工具 增量更新根据Eclipse里当前选中文件或目录自动获取class文件或resource文件打包到相应的路径目录里 修复BUG: 1、项目存在多个src路径的时候读取不到class文件 2、java文件有内部...
MySQL数据库实时增量同步工具是一种高效的数据管理解决方案,它允许用户在多个数据库实例之间实时地、持续地传输和更新数据。这种工具通常用于分布式系统、数据备份、数据仓库以及需要跨服务器复制数据的场景。源...