多工程并行开发的项目,避免编译失败
2013-09-24 11:32
281 查看
最近这个项目,是几十个工程并行开发,通过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
今天编译的时候发生了一次编译不通过。检查了一下,原来是在工程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
相关文章推荐
- 新手融入linux项目开发的必过关------编译工程代码
- 正确使用iOS常量(const)、enum以及宏(#define)在iOS开发中请尽量多使用const、enum来代替宏定义(#define);随着项目工程的逐渐增大,过多的宏定义还可能影响项目的编译
- Qt[5.4]开发Android[安卓]Quick/QML Extension[扩展]库[.so]工程[项目]编译问题及解决办法
- Eclipse中编译Android项目工程失败,提示: Error in an XML file: aborting build 解决办法
- 自己编译 tess-two几个库文件用于android OCR开发并合入你的工程项目
- 在windows开发环境下写bat脚本实现对erlang项目的并行编译处理
- 2008年2次失败的项目开发经历
- UE4 C++项目编译失败、打不开的解决方案
- 一次Maven项目编译失败的分析过程
- Maven项目开发____Java工程项目Pom的依赖
- osx项目安装cordova开发编译环境并创建项目
- 解决Xcode 6 beta 编译Cocos2d-x iOS项目失败
- SharpStreaming项目开发纪实:项目工程结构调整
- Unreal Engine4 C++基础代码项目编译失败原因小结
- Cocos2d-x项目开发时在Eclipse中配置环境编译C++
- eclipse下maven项目开发编译
- [项目管理]工程与产品开发的差异——一个老项目的经典问题
- mac上配置android开发环境并把cocos2dx项目编译到android
- eclipse开发cocos2dx 3.2环境搭建之三: ccp-tests项目编译 (this project is not a CDT project)
- 项目开发经验谈之:设计失败的挫败感