# 增量包(补丁包)打包工具 **Repository Path**: shiqiyue/patchGenerator ## Basic Information - **Project Name**: 增量包(补丁包)打包工具 - **Description**: 生成应用程序的增量包 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 3 - **Created**: 2018-01-12 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 你是否为每次服务器更新,都要上传几十M甚至上百M的程序而烦恼。那么,这个工具可能会适合你。 什么是增量包?增量包就是只包含更改的文件的补丁。使用增量包来更新系统,可以大大减少服务器更新时间。 当然,增量包也有处理不了的问题,主要有下面几个问题 1.删除的文件没法管理,如果你需要删除某个类,请手动删除 2.jar包变更没法管理,如果工程依赖的jar包更新了,请手动更新吧 如何使用 ==== git ---- ``` GitProjectInfo projectInfo = new GitProjectInfo(); projectInfo.setProjectName("blog"); projectInfo.setTargetBaseDir("C:/Users/Administrator/git/blog/blog-admin/target/"); projectInfo.setVersionManagerType(VersionManagerType.GIT); projectInfo.setGitRepositoryUrl("C:/Users/Administrator/git/blog/.git"); List sourceMappers = new ArrayList<>(); // 添加源码跟target跟生成patch的目录映射 SourceMapper javaMapper = new SourceMapper("/src/main/java", "/classes", "/classes"); SourceMapper resourceMapper = new SourceMapper("/src/main/resources", "/classes", "/classes"); SourceMapper webAppsMapper = new SourceMapper("/src/main/webapp", "/classes", "/classes"); sourceMappers.add(javaMapper); sourceMappers.add(resourceMapper); sourceMappers.add(webAppsMapper); projectInfo.setSourceMappers(sourceMappers); PatchInfo patchInfo = new PatchInfo(); patchInfo.setStartVersion("03e0c33"); patchInfo.setEndVersion("7de9c84"); patchInfo.setPatchFileDir("D:/update/blog"); GeneratePatchExecutor.execute(projectInfo, patchInfo); ``` SVN ---- ``` SvnProjectInfo projectInfo = new SvnProjectInfo(); projectInfo.setProjectName("ynb-app"); projectInfo.setTargetBaseDir("D:/stsworkspace/ynb-app-root/ynb-app/target/"); projectInfo.setSvnPassword("123456"); projectInfo.setSvnUsername("wwy"); projectInfo.setVersionManagerType(VersionManagerType.SVN); projectInfo.setSvnUrl("https://192.168.0.195/svn/ynb/ynb-app"); List sourceMappers = new ArrayList<>(); SourceMapper javaMapper = new SourceMapper("/src/main/java", "/classes", "/classes"); SourceMapper resourceMapper = new SourceMapper("/src/main/resources", "/classes", "/classes"); SourceMapper webAppsMapper = new SourceMapper("/src/main/webapp", "/classes", "/classes"); sourceMappers.add(javaMapper); sourceMappers.add(resourceMapper); sourceMappers.add(webAppsMapper); projectInfo.setSourceMappers(sourceMappers); PatchInfo patchInfo = new PatchInfo(); patchInfo.setStartVersion("2800"); patchInfo.setEndVersion("2944"); patchInfo.setPatchFileDir("D:/update/ynbapp"); GeneratePatchExecutor.execute(projectInfo, patchInfo); ``` 更新好的更新方式 ==== - 使用docker容器化(推荐) - 将版本管理系统(git或者svn)放置到外网,写脚本自动更新,可以使用gitee或者github(推荐)