最近在公司项目已经完成,在打包发布时,总会丢失一些jar包,从而报一些列的丢失依赖的错误问题。下面来分析下原因。
项目用SSH框架搭建的,并且单独把Web层和Core层分开来放置,在进行Tomact打包部署的时候,Core层的东西一直部署不进去,像Spring、Hibernate等的配置文件,如果打不进去的话,会报各种依赖注入的问题。经过一系列的排查,原来两个项目之间的依赖有问题。
刚开始为了项目单纯的运行起来,只是设置了两个项目之间的Project。
而没有在Libraries中添加lib的引用,因此项目在RunTime时期,是没有任何问题的,可是部署编译起来,Core的项目是打不进去的。
问题就是出现在这里,这时候如来来解决呢?如何能够是两个项目之间的依赖,部署打包时,能够让Core的项目编译到Web的classes中去呢?配置如下
Web层build Path中引入Core层项目的输出路径,如下图所示
接下来部署的时候,添加项目依赖即可
小结
在此也对elicpse中的build Path也总结下。
Projects 是指是否关联到其他项目进行相关搜索。这个类似于path路径的搜索,有个范围的作用。
Libraries是用来管理类库的,包括外部类库的添加与删除。
Order and Export有两个属性。调用优先级的问题,越在上边调用优先级越高。例如,在同包同类名的情况下,将优先从上到下执行搜索调用;打勾与不打勾的区别在于导出jar包时是否将这个库的内容也打包到jar中,勾为包含,不勾为不含。