论坛首页 Java企业应用论坛

多工程并行开发的项目,避免编译失败

浏览 1300 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-04-07  
最近这个项目,是几十个工程并行开发,通过ant统一编译以后打成war包

今天编译的时候发生了一次编译不通过。检查了一下,原来是在工程A中有一个接口增加了一个异常声明,结果工程B中某个调用该接口的类,就编译失败了

这里不吐槽java checked exception的问题,重点总结一下怎么避免编译失败的事情

1、要把相关的(依赖和被依赖)工程和lib库都下载到本地,同时保证本地编译不通过的代码,绝对不能往svn上提交

这个原则看起来非常基本,但是对于这次几十个工程的项目,就未必是这么回事了

因为往往开发人员只关注自己需要修改的那么几个工程。比如假设我平时只会用到工程A和B,但是工程A是依赖工程C的,同时工程D又依赖工程A

那我如果只把工程A和B都下载到本地,那我本地的工程A就很有可能是红叉,因为依赖的工程C在本地是没有的,或者是过期的

同时如果工程A中的代码修改了,由于我的本地是没有工程D的,所以我根本就看不到工程D的红叉(也就是本次的情况)

所以首先要把工程依赖和被依赖的工程都下载下来,这样的话,只要在本地ide中编译通过了再提交,基本可以保证svn上也能编译通过

当然这样就有一种可能,就是工程不断地相互依赖,最终把整个项目的所有工程都下载下来了,造成本地工程臃肿,而且每次本地编译就太久了。那么这个问题就涉及到项目初期工程规划的架构,不在本文的范畴

2、在提交之前要先更新周边代码,以免本地编译通过,但是svn编译失败

3、每次提交代码要完整,不能部分提交,否则也会造成本地编译通过,但是svn编译失败

关于2和3,在另一篇博客里有详细的说明:

http://kyfxbl.iteye.com/blog/1447060



论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics