我们在开发的时候,有时候需要把一个大的项目打散,尤其是现在微服务的架构很流行,一个大的项目往往被拆成很多小的项目,而有的项目作为公共工程被独立出来,比如有个工程专门提供各种Util工具类,有的工程专门提供数据库接口。

这些工程在项目结束后往往被打成jar包直接依赖给需要的工程,但是在开发过程中,这些工程的源码也是一直在变的,我们不能改一次源码编译一个jar包吧?这里介绍一下elipse项目之间的相互依赖。

假设我们的公共工程(被别的项目引用的工程)叫 util

1、如果是java工程想引用util工程

右键项目→Properties→Java Build Path→Projects→Add

701fba7d8d65a594a2cd56a91797805c.png

勾选 util 工程→OK

1613f285b15e8fdde0092685438702a9.png

看见util工程已经被添加进来,点击 Apply and Close。

e5f4879e5e8451a122911057c5b30df3.png

这样eclipse会自动编译uitl工程并依赖给java工程。

2、web工程

上述设置是针对于java工程的,对于web工程的设置方式是不同的。

因为web工程不光需要编译util工程,还涉及到web容器对编译好的jar包进行发布。

右键工程名称→Properties→Deployment Assembly→Add

8efd50b5ababb144c3ac97b530df24df.png

选择Project→Next

53c8709fadda80dd69449b64cb579c64.png

选择util工程,点击Finish(注意此处可以选择多个工程)

ea3144c05f436afae308f79763de53ed.png

确认util工程已经被添加进来,点击Apply and Close,设置完成。

这里需要注意的是,如果util工程依赖其他的jar包,也是需要把这些jar包copy到web工程的lib目录下或者把这些jar包也引入到Deployment Assembly里。

129ff10de82763c1ee5d6a8e8dedb1dc.png

从上图我们可以看出,eclipse会在web项目发布的时候,将uitl工程打包成uitl.jar,并发布到web容器(比如tomcat)的WEB-INF/lib/目录下。

如果你按照java工程的方式去依赖util工程的话,web项目发布之后,在tomcat目录下是找不到util.jar这个jar包的,到时候就会报ClassNotFound的错了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐