工具篇(Java)--- 增量打包

React Web 端增量打包与合并部署技术方案详解 try {console.warn('读取构建清单失败:', error);.hash;});});});callback();});React Web 端的增量打包与合并部署是提升开发效率和用户体验的关键技术。小型项目:Vite + Docker 轻量级方案,快速迭代中型项目:Webpack + 自定义增量插件 + Kubernetes,平衡效率与功能大型项目:Webpack + 微前端架构 + 蓝绿部署,支持复杂业务场景。 阅读详情

目录

概述

准备

源码增量打包

编译后的文件增量打包

指定文件复制


概述

    由于大多的生产环境都采用的是增量发版,因此需要把把改变的代码打包,本文采用的是使用Java代码对

SVN上的更新记录选择后进行打包

准备

    到项目的SVN管理出找到历史更新记录,选择要打包的记录然后生成变更到本地即可,需要注意存放的位置

源码增量打包

package xxx.xxx.xxx.prdPacking;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Pattern;

/**
 * 增量打包工具类,打包源代码</br>
 * 项目右键-->Team-->显示资源历史记录-->选中要更新的日志保存到changeLog文件
 * 
 */
public class IncrementalPackagingSrc {
	
	// ----------------------无需改动
	// 正则表达式
	private static final String HEADSTR = "^\t[M|A] $";
	// 分割线
	private static final String DIVIDING_LINE = "----------------------------------------------------------------------------";
	// 提交的文件说明list
	private static Set<String> COMMIT_CONTEXT_LIST = new HashSet<>();
	// 项目文件夹路径  
	private static String PROJECTPATH = System.getProperty("user.dir").replace("\\", "/");
    
	
	// ----------------------根据需要进行改动配置
	// 补丁文件,由eclipse svn plugin生成 
	private static final String PATCHFILE="D:/changeLog.txt";  // 导出的日志地址
	// 补丁文件包存放路径  
	private static final String DESPATH="D:/update_pkg";   // 存放文件的地址
	// 补丁版本 
	private static final String VERSION="xxx/xxx/xxx"; // 更详细的地址,比如日期,版本,项目名
    
    private static int COUNT = 0 ;
    
    public static void main(String[] args) {
		copyFiles(getPatchFileList());
	}
	/**
	 * 得到patch里面更改过的文件
	 * @return
	 * @throws Exception
	 */
    private static Set<String> getPatchFileList(){  
		FileInputStream f = null;   
		BufferedReader dr = null;  
		Set<String> fileList = new HashSet<>();
		try {
			f = new FileInputStream(PATCHFILE);  
			dr =new BufferedReader(new InputStreamReader(f,"utf-8"));
        	String line = "";  
        	String commit = "" ; 
        	while((line=dr.readLine())!=null){   
        		
        		// 保存提交时候说明内容
        		if (DIVIDING_LINE.equals(line)){
        			COMMIT_CONTEXT_LIST.add(commit);
        		}
        		commit = line;
        		// 匹配更新文件
        		if(line.length()>=3 && Pattern.matches(HEADSTR,line.substring(0, 3))){  
        			line = line.substring(line.indexOf("src/main"));
        			fileList.add(line);
        		}
        	}
		} catch (Exception e) {
			e.printStackTrace();
			System.err.println("文件集合error");
		}finally{
			if (null != dr) {
				try {
					dr.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(null != f){
				try {
					f.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
		System.out.println("-----------
高效软件更新:增量打包技术与工具 增量打包工具是现代软件开发中不可或缺的一部分,它通过对软件版本的差异性分析,只打包更改过的文件或代码块,而不是每次都打包整个项目。这种方式显著减少了构建时间,降低了带宽消耗,并提高了部署效率。版本控制系统是软件开发中的基石,它负责跟踪和管理源代码的变更历史。这样的系统允许开发团队成员同时工作于项目的不同部分,并将这些变更集成到一个共享的代码库中。版本控制系统的基本功能包括变更记录、版本回退、分支管理以及合并冲突解决等。版本控制的重要性在于它确保了代码变更的可追溯性和可复原性。 阅读详情

相关推荐

Java增量升级工具:高效软件更新解决方案

增量升级是对传统全面升级方式的一种优化,它通过分析软件的两个版本之间的差异,仅将修改过的文件或代码段提供给用户。通过这种方式,可以只对软件修改或新增的部分进行打包和分发,从而实现对软件的快速升级和部署。Java增量升级工具在支持版本控制的同时,确保不同版本间的兼容性是其核心能力之一。具体而言,该工具通过以下方式实现版本控制和兼容性保证:版本跟踪:工具能够追踪应用的版本历史,记录每次更新的详情,以便在未来需要时能够快速回滚到特定版本。API兼容性检查。

weixin_35757191的博客 1297

JAVA增量包打包工具

项目增量补丁包神器桌面版:全自动web增量打包发版,支持gitee/git/svn,支持多模块项目

ideploy 打包工具javaweb 增量打包工具

ideploy 打包工具javaweb 增量打包工具

PLC编程标准之争:IEC61131与IEC61499核心区别与选型指南

在工业自动化领域,PLC编程长期依赖IEC61131标准,它定义了梯形图、结构化文本等语言,通过周期扫描机制保证确定性执行。然而,随着工业4.0和分布式控制场景的兴起,IEC61499以事件驱动模型打破传统范式,让功能块能跨设备协同,实现更灵活的柔性产线和模块化系统。理解两者在程序结构、数据交互、部署方式和实时性上的差异,是选型与工程落地的关键。本文从基础概念出发,剖析执行模型与架构演进,结合一线调试经验,帮助工程师在传统PLC与下一代标准之间做出理性决策。

weixin_27014595的博客 268

维护测试监控LLM应用

LangFuse: 开源 + SaaS(免费/付费),LangSmith 平替,可集成 LangChain 也可直接对接 OpenAI API;LangSmith: LangChain 的官方平台,SaaS 服务(免费/付费),非开源,企业版支持私有部署;调试 Prompt 的 Playground测试/验证系统的相关指标数据集管理各种指标监控与统计:访问量、响应时长、Token 费等等。

SunnyRivers 1780

【电驱动】永磁同步电机工作原理及分类

永磁同步电机工作原理及分类

星Yeah 的博客 7323

【人工智能】 WebDev Arena:实时AI Web开发竞赛的技术探索与价值

《AI编程竞赛推动Web开发技术创新》摘要:WebDev Arena作为聚焦Web开发领域的实时AI编程竞赛,通过标准化竞技环境检验AI模型在代码生成、问题解决等方面的能力。竞赛覆盖前端、后端等全流程开发环节,采用实时评分机制,推动AI对复杂Web需求的理解和多元技术栈适配。该赛事不仅促进AI编程技术创新,更为Web开发行业与AI技术融合搭建桥梁,有望提升开发效率、降低技术门槛。未来将拓展Web3.0等前沿技术主题,持续推动行业智能化发展。(150字)

奶爸的编程之路,也就一周冷个三天 255

七天征服AutoSAR/SomeIP_04理解SoAD_LdCom_SD模块

本文深入解析了AUTOSAR平台下SOME/IP协议栈的架构设计与模块交互逻辑。重点剖析了SD模块(服务发现)和LdCom模块(通信适配层)与SoAD(Socket适配层)之间的复杂关联关系。文章通过详细配置表格和代码示例,阐述了服务注册发现机制、PDU路由控制策略、数据收发流程等核心功能,并形象地将三模块关系类比为"三极管结构"。特别强调了SD模块通过RoutingGroup实现通信路径的动态开关控制,以及LdCom模块在协议栈中的透传转发作用,帮助开发者理解配置规则背后的底层原理,提

大叔带刺的博客 194

星敏感器:卫星姿态测量的“星空导航仪”

在卫星、航天器和深空探测器的姿态控制系统中,星敏感器(Star Tracker) 是最精确的姿态测量设备之一。它通过识别恒星的位置,计算出航天器在惯性空间中的三轴姿态,精度可达 角秒级(arcsecond),是许多高精度任务(如遥感、天文观测、深空探测)的核心传感器。

ScilogyHunter的博客 3693

如何创建 SAP ABAP CDS View 的 Association

所以本文我们虽然学习了如何创建 SAP CDS View 的 association,知道了 association 是用来在 CDS View 里将两张数据库表关联起来,但根本不知道怎么使用这个 association. 而且从 association 的写法来看,似乎和本教程之前介绍 inner join,left join 这些数据库表的连接操作没什么区别,都是根据两张表的 carrid 和 connid 字段相同进行的连接。只看到了我们在 CDS View 源代码实现里,放出来的四个字段。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 904

运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案

本文主要介绍了运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案,希望能对使用xx的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 10万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 功能实现篇(定时任务)--- 实现定时任务
下一篇: 数据库篇(数据库设计) ---权限系统设计
Coder_Light
博客等级 码龄9年 30粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值