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

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

  •  1
     
  •   nekolr · 2018-03-14 22:10:55 +08:00 · 3180 次点击
    这是一个创建于 2227 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT

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

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

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

    11 条回复    2018-03-15 10:33:57 +08:00
    whypool
        1
    whypool  
       2018-03-14 22:14:49 +08:00
    增量?还有这种部署方式?
    简单点就是 svn 打分支打 tag,自动构建可以选 jekens
    nekolr
        2
    nekolr  
    OP
       2018-03-14 22:16:06 +08:00
    @whypool 谢谢,其实就是更新部分文件
    li1215101
        3
    li1215101  
       2018-03-14 22:23:30 +08:00
    bsdiff lastTarget.war newTarget.war project.patch
    nekolr
        4
    nekolr  
    OP
       2018-03-14 22:28:14 +08:00
    @li1215101 谢谢!!去看看
    xiangyuecn
        5
    xiangyuecn  
       2018-03-14 22:34:20 +08:00
    可以试试把 out 目录内关键的生成文件也加入版本库,目测相同的 java 文件任何时候编译成的 class 文件是相同的,这样子就只会有改动源代码的 class 文件会产生提交记录,然后比较一下版本差异,把差异文件导出来就是更新部分了。编不下去了,纯属目测
    shalk
        6
    shalk  
       2018-03-14 22:40:24 +08:00 via iPhone
    为什么不替换 war 包 简单直接
    nekolr
        7
    nekolr  
    OP
       2018-03-14 22:41:42 +08:00
    @shalk 有时候 war 包几百兆,有时候只更新了部分不需要编译的文件(容器不必重启),有这种需求要做补丁式的更新
    nekolr
        8
    nekolr  
    OP
       2018-03-14 22:43:32 +08:00
    @xiangyuecn 哈哈,没事,谢谢!
    wccc
        9
    wccc  
       2018-03-15 09:12:45 +08:00
    几百兆 ..
    可以考虑把静态资源移出去了
    pmispig
        10
    pmispig  
       2018-03-15 10:19:35 +08:00
    增量打包更新是个愚蠢的方案,用 svn/git 之类的 tag 很方便。一个 tag 就是一个版本快照。
    nekolr
        11
    nekolr  
    OP
       2018-03-15 10:33:57 +08:00
    @pmispig 谢谢!我去了解一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2793 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:42 · PVG 19:42 · LAX 04:42 · JFK 07:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.