关于代码编译打包和版本管理的一些事情

本文探讨了在大规模开发团队中遇到的代码编译不通过问题及其解决方案,强调了提交前更新代码和完整提交的重要性。此外,详细介绍了如何打jar包和war包,强调了开发环境的统一和避免依赖容器特定类。最后,讨论了分支管理策略,提倡维护单一代码主干并使用配置文件处理不同需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近对于代码编译、打包以及版本的管理有一些想法,虽然比较简单,也先记录下来,以后再逐步完善

1、项目参与的人比较多,大概是200个人一起开发,经常发生提交到SVN上的代码编译不通过的情况,浪费了很多时间。

分析了一下,大部分是由于以下2个原因:

第一种情况:开发人员本地机器上有代码A和代码B,但是代码A在SVN上已经是比较新的版本,删除了某个方法,然后开发人员在本地修改代码B,调用了这个在SVN上已经不存在的方法(但是在本地的代码A上还是有的)。然后本地开发环境当然是编译通过的,于是开发人员就提交了修改后的代码B,这样一来,SVN上的代码肯定就编译无法通过了,报NoSuchMethodException

第二种情况:开发人员在本地修改了很多代码,编译都通过了没有问题,但是提交的时候只提交了部分代码。这样SVN上的代码就不全了,也会造成编译无法通过,报ClassNotFound或者NoSuchMethod

要避免上述第一种情况,就要求开发人员在提交代码之前,先把本地的代码更新一下,这样如果本地编译通过再提交,就会比较少发生提交后SVN代码编译不通过的情况

针对第二种情况,就要求开发人员每次把修改的代码提交完整

2、关于打jar包

打jar包比较简单,通过eclipse的export --> jar的功能就可以,在打包的时候,可以选择具体要打包的代码,或者资源文件,以及依赖的其他jar包。比如一个普通的java工程,里面有一个lib目录,放了很多依赖的其他jar包。那在把这个工程打成jar包的时候,可以把lib目录也打出来,或者不打也是可以的,由自己选择,一般是不会打的

这里说个题外话,为什么有时候从svn上import了一个工程,发现无法编译(红叉叉),报缺少jar包呢。这时候要看一下工程对应的.classpath文件,里面可能是引用了user library,而user library是依赖eclipse的,并不像lib文件夹里的jar包那样,可以上传到svn上再下载下来。也就是说开发人员A机器上自己建了一个user library,开发人员B的机器上是不会自动有的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值