Java 开发有没有方便的工具可以拷贝出 class 文件

2019-05-22 22:36:20 +08:00
 iszengmh

每次开发功能要部署到生产环境,不敢整个项目复制上去,只是把自己写得功能 class 文件复制上去,非常麻烦要打开一个个文件夹去复制,有没有什么方便的工具

3596 次点击
所在节点    程序员
37 条回复
kosmosr
2019-05-22 22:40:10 +08:00
arthas
littlewing
2019-05-22 22:41:08 +08:00
你们不用 git 管理代码的吗
redtea
2019-05-22 22:44:03 +08:00
这样部署会出事故的
loveCoding
2019-05-22 22:44:34 +08:00
生产环境还一个一个复制覆盖 class,这是要跑路的节奏啊,不要走歪路,老老实实去学下 maven/gradle,jenkins
notreami
2019-05-22 22:45:17 +08:00
这个操作,送你 6 字箴言吧。。。。
npe
2019-05-22 22:45:18 +08:00
为啥不在服务器编译?
ob
2019-05-22 22:48:15 +08:00
idea 可以设置同步
iszengmh
2019-05-22 22:48:31 +08:00
svn 管理哦
serical
2019-05-22 23:01:27 +08:00
https://github.com/serical/patcher 遇到过类似问题,idea 不知道还能不能用😂
szq8014
2019-05-22 23:31:14 +08:00
3 年前公司写 java web 还用着 svn 的时候有这样的需求,因为需要将更新发给现场,包越小越好,当时的操作是 svn 选中多个 commit 然后导出,这样就把这几次提交修改的文件带目录结构导出来了,jsp 就不需要啥操作了,java 的话就到每一个 java 文件那里复制文件名然后用 everything 搜名字,找到对应的 class 文件复制过来,java 文件可删可不删。整体操作下来还是挺有效率的。
sailing0505
2019-05-22 23:54:49 +08:00
maven 有个 dependency 插件
oneisall8955
2019-05-23 04:21:10 +08:00
maven/gradle +jenkins 完美解决
Jonz
2019-05-23 08:10:15 +08:00
之前用 Eclipse 的时候可以按目录结构导出的
nekolr
2019-05-23 08:19:13 +08:00
这样做不好,不过有个工具可以一试。https://github.com/nekolr/sirius-inc
使用这个工具需要先提交 svn,然后将需要打包的那条提交的 revision 复制到软件中。
nekolr
2019-05-23 08:21:11 +08:00
有什么问题可以交流一下
fhsan
2019-05-23 08:42:23 +08:00
这样部署肯定有问题的,放 git 里面,部署回滚都很方便。
sp121933039
2019-05-23 09:18:42 +08:00
我之前写的一个 idea 插件 可以试试 也是 javaweb 导出 class 文件 我也一直在用 我扔到了 github 上了 自己 拉一下
目前没有说明文档 如果有不知道的地方可以问我一下
https://github.com/laitySunPiaoliang/exportclass/releases
silentstorm
2019-05-23 09:26:40 +08:00
还能这样操作,不怕出问题吗?
比如 a.java 里面定义了一个 static final 常量,有若干 java 文件引用了这个常量。那么在编译时会把常量值编译到引用他的所有 class 文件里面。
如果你修改了常量值,只把 a.class 部署上去。造成的结果就是其他 class 里面的常量值没有变,你的修改没有起效。
jimrok
2019-05-23 09:26:45 +08:00
如果不折腾 jenkins,简单就是用 python 的 fabric,或者 ruby 的 capistrano。 或者再简单些,写个 deploy.sh 的 shell script,把 git pull,编译,再 mv,restart 都做一遍
qping
2019-05-23 09:27:35 +08:00
我在第一家公司的时候也是经历过这个阶段,项目分布在各个地方且是内网无法外网访问,各个地方项目人员变动频繁,代码管理混乱,打出整包能代码到 1 个 G,现场内网网速不快,所以功能更新只能增量包更新,还真有个 windows 下的工具。

链接: https://pan.baidu.com/s/1AwVnlakRZczoFHE2A3gMvg 提取码: xqtd

使用方法是选择项目代码根目录,然后选择时间点,能把这个时间点之后修改的文件 + 目录导出来,由其适合 java 这种编译 class 的。

另外:master 分支上代码应该始终和线上代码保持一致,这么操作会出事,如果你能改变就尽快回归正道,不能的话话早点换个公司对你也比较好。。。。

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

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

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

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

© 2021 V2EX