svn spring项目增量打包工具

svn spring项目增量打包工具

前提介绍

项目使用svn ,打包方式为war包,开发工具ide

项目有时候更新功能只需要更新部分class和html文件,但是要每个都打包并不是很简单

听说idea有现成的插件可以实现这个功能,但是我没找到,所以就自己写了一个工具,

我记得以前使用eclipse的时候有这个功能,但是具体忘记了。

下面我就介绍一下

整体逻辑

  1. 获取最近修改的文件

  2. 把需要打包的文件按照包路径放到一个新的包中

  3. 发给项目人员

shell 复制代码
svn命令 svn status

主要就是用到了这个命令,可以找到最近修改的文件

可以看到前面带M的就是最近更新的

剩下的就是复制文件到新的包了

代码编写过程

Process 类使用

执行cmd命令

用到的命令有

D: 找到盘符

cd /项目路径

svn status 执行svn命令

java 复制代码
Process process = run.exec("cmd");
OutputStream out = process.getOutputStream();
out.write((args[0] + "\n").getBytes());
out.write(("cd " + args[1] + "\n").getBytes());
out.write("svn status\n".getBytes());
out.flush();
out.close();
InputStream ret = process.getInputStream();
InputStream err = process.getErrorStream();
String result = readStr(ret);
String errResult = readStr(err);

当然路径参数要从参数中传进来,也可以加一下提示信息

java 复制代码
    public static void main(String[] args) throws IOException {
        if(null == args || args.length == 0){
            System.out.println("输入 --help 查看更多命令");
            return;
        }
        if(args[0].indexOf("--help") > -1){
            System.out.println("程序名称 盘符 项目路径");
            System.out.println("示例:");
            System.out.println("java -jar svn-common.jar D: /project/demo");
            return;
        }
    }

文件复制

剩下的就相关文件进行复制,因为不同的文件可能位置不一样要单独处理,自己可以自行处理

最后

有需要代码的可以私信我留下邮箱,当然也可以自己试着写一写

脚本

可以自己搞一个脚本这样用起来更方便

bash 复制代码
@echo off
java -jar svn-common.jar D: /project/3.0new
pause
相关推荐
想学习java初学者8 小时前
SpringBoot整合Vertx-Mqtt多租户(优化版)
java·spring boot·后端
AC赳赳老秦8 小时前
政企内网落地:OpenClaw 离线环境深度适配方案,无外网场景下本地化模型对接与全功能使用
java·大数据·运维·python·自动化·deepseek·openclaw
weixin_449173658 小时前
在 Java 中,‌线程安全的 List‌ 主要有以下几种实现方式,它们的效率取决于具体的使用场景(尤其是读写比例):
java·线程安全的list
砚底藏山河8 小时前
股票数据API接口:如何获取股票历历史分时KDJ数据
java·python·maven
MegaDataFlowers10 小时前
运行若依项目
java
lulu121654407810 小时前
JetBrains IDE 终极AI编程方案:CC GUI插件让Claude Code和Codex丝滑运行
java·ide·人工智能·python·ai编程
('-')10 小时前
八股复习2:Java Array list和Linked list
java·开发语言
逸Y 仙X11 小时前
Elasticsearch时间类型实战
java·大数据·elasticsearch·搜索引擎·全文检索
Gerardisite11 小时前
企微批量群发消息指南:用 QiWe 省掉人工操作
java·python·机器人·企业微信
青山师13 小时前
动态代理深度解析:JDK与CGLIB底层实现与实战
java·设计模式·面试·动态代理·java面试·cglib