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

2018-03-14 22:10:55 +08:00
 nekolr

RT

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

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

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

3188 次点击
所在节点    Java
11 条回复
whypool
2018-03-14 22:14:49 +08:00
增量?还有这种部署方式?
简单点就是 svn 打分支打 tag,自动构建可以选 jekens
nekolr
2018-03-14 22:16:06 +08:00
@whypool 谢谢,其实就是更新部分文件
li1215101
2018-03-14 22:23:30 +08:00
bsdiff lastTarget.war newTarget.war project.patch
nekolr
2018-03-14 22:28:14 +08:00
@li1215101 谢谢!!去看看
xiangyuecn
2018-03-14 22:34:20 +08:00
可以试试把 out 目录内关键的生成文件也加入版本库,目测相同的 java 文件任何时候编译成的 class 文件是相同的,这样子就只会有改动源代码的 class 文件会产生提交记录,然后比较一下版本差异,把差异文件导出来就是更新部分了。编不下去了,纯属目测
shalk
2018-03-14 22:40:24 +08:00
为什么不替换 war 包 简单直接
nekolr
2018-03-14 22:41:42 +08:00
@shalk 有时候 war 包几百兆,有时候只更新了部分不需要编译的文件(容器不必重启),有这种需求要做补丁式的更新
nekolr
2018-03-14 22:43:32 +08:00
@xiangyuecn 哈哈,没事,谢谢!
wccc
2018-03-15 09:12:45 +08:00
几百兆 ..
可以考虑把静态资源移出去了
pmispig
2018-03-15 10:19:35 +08:00
增量打包更新是个愚蠢的方案,用 svn/git 之类的 tag 很方便。一个 tag 就是一个版本快照。
nekolr
2018-03-15 10:33:57 +08:00
@pmispig 谢谢!我去了解一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/438111

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX