eclipse工程依赖

1、在eclipse里创建2个工程,工程A和工程B,工程B依赖工程A。在这种情况下,工程A中的代码 “可以视为”存在于工程B中

比如在工程A中有一个User类,那么工程B可以直接调用这个User类的getName()方法。如果在工程A中删除了getName()方法,那么工程B也会报编译错误

因此,如果一个项目是由工程A和工程B组成的(简化一下,实际中可能不止),并且工程B依赖于工程A的话。那么在提交工程B的代码到SVN之前,必须先更新工程A,否则在SVN的代码,不能保证编译能通过

这种让工程B依赖工程A的做法,和将工程A打成jar包导入到工程B中本质上是一样的,但是前者更加方便,因为工程A的任何改动,都可以直接体现在工程B里

在实际开发中,将一个项目拆分为多个工程有时是必要的,但是一定要处理好依赖关系,否则在项目后期会引来很多麻烦

2、然而, 在IDE中可以编译通过,与可以运行完全是两回事。比如还是上面说的,工程B依赖工程A,这样在IDE中是可以编译通过不报错,但是单独javac工程B,而不指定-classpath,就会编译不通过

或者工程B本身是一个web应用,直接通过eclipse导出war包,其WEB-INF/lib里默认是没有A.jar的,把这个war包放到容器里运行,就会报ClassNotFoundException

会产生这个现象,是因为IDE(比如eclipse)在幕后默默做了很多工作。比如在auto compile工程时,根据设置的依赖工程,自动加入了-classpath参数

所以这种多工程依赖的项目,在实际发布时,需要做一些额外的工作,完全依赖IDE是不行的,或许也是我用得不好吧。总之在开发时,可以依赖IDE来编译,但是发布的时候,还是需要费点心思

猜你喜欢

转载自kyfxbl.iteye.com/blog/1452814