首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Java

如何将 svn 更新的部分代码筛选出来打包更新服务器

  •  1
     
  •   nekolr · 99 天前 · 977 次点击
    这是一个创建于 99 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT

    比如 A 更新了部分代码(有 java 代码,有 html 代码,有 jsp 代码,有样式代码),如何将 A 更新的这些代码(需要编译的编译)打包成增量更新包,直接上传到服务器 web 容器(如 tomcat )进行更新?

    我当前的做法是一个个筛选更新的文件:如果是 java 源代码文件,就使用 IDE 编译后,然后到 out 的目录挨个找到,最终将本次提交的所有代码合起来打一个包,比如叫 ROOT 的包,上传至服务器 tomcat 部署。

    这种方式费时费力,有时候还容易出错,目前的思路是准备写一个工具来完成这个过程,但是不太清楚目前是否有成熟的处理方式?

    11 回复  |  直到 2018-03-15 10:33:57 +08:00
        1
    whypool   99 天前
    增量?还有这种部署方式?
    简单点就是 svn 打分支打 tag,自动构建可以选 jekens
        2
    nekolr   99 天前
    @whypool 谢谢,其实就是更新部分文件
        3
    li1215101   99 天前
    bsdiff lastTarget.war newTarget.war project.patch
        4
    nekolr   99 天前
    @li1215101 谢谢!!去看看
        5
    xiangyuecn   99 天前
    可以试试把 out 目录内关键的生成文件也加入版本库,目测相同的 java 文件任何时候编译成的 class 文件是相同的,这样子就只会有改动源代码的 class 文件会产生提交记录,然后比较一下版本差异,把差异文件导出来就是更新部分了。编不下去了,纯属目测
        6
    shalk   99 天前 via iPhone
    为什么不替换 war 包 简单直接
        7
    nekolr   99 天前
    @shalk 有时候 war 包几百兆,有时候只更新了部分不需要编译的文件(容器不必重启),有这种需求要做补丁式的更新
        8
    nekolr   99 天前
    @xiangyuecn 哈哈,没事,谢谢!
        9
    wccc   99 天前
    几百兆 ..
    可以考虑把静态资源移出去了
        10
    pmispig   99 天前
    增量打包更新是个愚蠢的方案,用 svn/git 之类的 tag 很方便。一个 tag 就是一个版本快照。
        11
    nekolr   99 天前
    @pmispig 谢谢!我去了解一下
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   2811 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 24ms · UTC 07:18 · PVG 15:18 · LAX 00:18 · JFK 03:18
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1