svn spring项目增量打包工具

news2025/1/23 10:31:21

svn spring项目增量打包工具

前提介绍

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

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

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

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

下面我就介绍一下

整体逻辑

  1. 获取最近修改的文件

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

  3. 发给项目人员

svn命令 svn status

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

在这里插入图片描述

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

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

代码编写过程

Process 类使用

执行cmd命令

用到的命令有

D: 找到盘符

cd /项目路径

svn status 执行svn命令

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);

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

    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;
        }
    }

文件复制

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

最后

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

脚本

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

@echo off
java -jar svn-common.jar D: /project/3.0new
pause

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1383878.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java内容

目录 1.命名规范 1.命名规范 2.变量

PiflowX如何快速开发flink程序

PiflowX如何快速开发flink程序 参考资料 Flink最锋利的武器:Flink SQL入门和实战 | 附完整实现代码-腾讯云开发者社区-腾讯云 (tencent.com) Flink SQL 背景 Flink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标…

GPT5会是什么样的?奥特曼在YC W24会上演讲要点

“YC启动活动上,Sam Altman表示:以GPT-5和AGI将在’相对不久的将来’实现的心态来构建。” 在Y Combinator的一个启动活动中,Sam Altman表示,人工通用智能(AGI)的发展即将到来,并建议在构建产品…

【Fiddler抓包】微信扫码访问链接打不开网页

又来每天进步一点点~~~ 背景:某天发版的时候,手机连接电脑抓包查看用户登录之前的sessionID,由于业务需要,是需要用户登录微信扫码跳转至某一页面的,微信(分身)扫码成功,跳转时打不…

dcm数据格式转nrrd数据格式(2维转3维)

目的 将dcm数据格式(2D)转成nrrd数据格式(3D) 将一个文件夹下的dcm数据转成一个nrrd数据 代码 1. 安装必要包 pip install SimpleITK2. 上代码 Descripttion: Result: Author: Philo Date: 2024-01-10 14:25:49 LastEditors: …

WorkPlus企业打破信息孤岛,构建统一工作平台的首选之一

在当今数字化时代,企业内部存在着繁多的工作应用和系统。要实现高效的工作协作,企业需要一个统一的工作平台来打破信息孤岛,提升协作效率。作为一家领先的企业统一工作平台,WorkPlus以其卓越的性能和专业的功能,助力企…

【算法】Java-二叉树的右视图(BFS、DFS两种解法)

题目要求: 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4]示例 2: 输入: [1,null,3] 输出: [1,3]示例 3: 输入…

python基础-base64编码理解

目录 1、base64是什么 2、base64有什么用 3、base64如何用 4、理解base64 5、扩展 1、base64是什么 base64 就是包括字母a-z,A-Z,数字0-9,符号“”,“/”一共64个字符的字符集;还有一个‘’ 字符,占位补充; …

WorkPlus助力企业高效协作的企业级内网即时通讯解决方案

在企业内部,高效沟通和协作是推动工作顺利进行的关键。而企业级内网即时通讯成为了提升内部沟通效率的重要工具。作为一家领先的企业级内网即时通讯解决方案,WorkPlus以其卓越的性能和高安全性,打造了高效沟通协作的新标杆。 为什么选择WorkP…

嘘……快进来!这儿有最新版Microsoft照片程序的安装秘籍!(附安装引导程序下载)

网管小贾 / sysadm.cc 最近啊有不少小伙伴向我反馈,自个的 Windows 10 系统里边居然没有 Microsoft 照片 程序。 我觉得有点不可思议,为啥呢,因为他们的电脑是新买的! 你看哈,系统是 22H2 最新版,安装日期…

陀螺仪LSM6DSV16X与AI集成(6)----检测自由落体

陀螺仪LSM6DSV16X与AI集成.6--检测自由落体 概述视频教学样品申请源码下载生成STM32CUBEMX串口配置IIC配置CS和SA0设置串口重定向参考程序初始换管脚获取ID复位操作BDU设置 概述 本文介绍如何初始化传感器并配置其参数,以便在检测到自由落体事件时发送通知。 最近…

STM32H5 Nucleo-144 board开箱

文章目录 开发板资料下载 【目标】 点亮LD1(绿)、LD2(黄)和LD3(红)三个LED灯 【开箱过程】 博主使用的是STM32CubeMX配置生成代码,具体操作如下: 打开STM32CubeMX,File-…

620基于51单片机的密码锁设计[Proteus仿真]

620基于51单片机的密码锁设计[proteus仿真] 密码锁设计这个题目算是课 程设计和毕业设计中常见的题目了,本期是一个基于51单片机的密码锁设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2¥,私信…

第 11 章 树结构实际应用

文章目录 11.1 堆排序11.1.1 堆排序基本介绍11.1.2 堆排序基本思想11.1.3 堆排序步骤图解说明11.1.4 堆排序代码实现 11.2 赫夫曼树11.2.1 基本介绍11.2.2 赫夫曼树几个重要概念和举例说明11.2.3 赫夫曼树创建思路图解11.2.4 赫夫曼树的代码实现 11.3 赫夫曼编码11.3.1 基本介绍…

关于java类与对象的创建

关于java类与对象的创建 我们在前面的文章中回顾了方法的定义和方法的调用,以及了解了面向对象的初步认识,我们本篇文章来了解一下类和对象的关系,还是遵循结合现实的方式去理解,不是死记硬背😀。 1、类 类是一种抽…

第 3 场 蓝桥杯小白入门赛 解题报告 | 珂学家 | 单调队列优化的DP + 三指针滑窗

前言 整体评价 T5, T6有点意思&#xff0c;这场小白入门场&#xff0c;好像没真正意义上的签到&#xff0c;整体感觉是这样。 A. 召唤神坤 思路: 前后缀拆解 #include <iostream> #include <algorithm> #include <vector> using namespace std;int main()…

03.neuvector之组的划分逻辑

neuvector之组的划分逻辑 原文链接,欢迎大家关注我的github账号 一、组的定义 NeuVector 会自动从正在运行的应用程序中创建组。这些组以前缀‘nv‘开头。您也可以使用 CRD 或 REST API 手动添加它们&#xff0c;并且可以在任何模式下创建、发现、监视或保护。网络和响应规则需…

Pandas:Python可视化神器

大家好&#xff0c;数据可视化可以让我们很直观的发现数据中隐藏的规律&#xff0c;察觉到变量之间的互动关系&#xff0c;可以帮助我们更好的给他人解释现象&#xff0c;做到一图胜千文的说明效果。 常见的数据可视化库有: matplotlib 是最常见的2维库&#xff0c;可以算作可…

如何基于 Gin 封装出属于自己 Web 框架?

思路 在基于 Gin 封装出属于自己的 Web 框架前&#xff0c;你需要先了解 Gin 的基本用法和设计理念。 然后&#xff0c;你可以通过以下步骤来封装自己的 Web 框架&#xff1a; 封装路由&#xff1a;Gin 的路由是通过 HTTP 方法和 URL 路径进行匹配的&#xff0c;你可以根据自己…

MySQl Mybatis

一、MySQL 1.1 概述 1.1.1 MySQL安装 1.1.2 数据模型 1.1.3 SQL简介 1.2 DDL 1.2.1 数据库操作 1.2.2 图形化工具 1.2.3 表结构操作 &#xff08;一&#xff09;创建 &#xff08;二&#xff09;数据类型 &#xff08;1&#xff09;数值类型 age tinyint unsigned——加上…