今天用maven构建项目,由于该项目需要同时开发安卓端和web端,需要用到分布式的部署方式来共享业务层,将业务层独立出来。在构建的3个工程中都用到了spring框架,由于对配置文件命名的极端癖好,造成多个配置文件同名,因此在引用部署的时候会发生覆盖的情况。现通过将业务层代码打成jar包来区分开来(隔离),但由于myEclipse工具过于强大,打无法像Eclipse一样配置了直接就打成jar包。最终在网上找了一篇老外的文章看了一下,由于myEclipse版本不一样也没有解决。但也给了灵感,再次非常感谢为开源无私奉献的老外。现将解决方案通过图片的方式讲解。 问题描述:本地测试,通过myEclipse-Servers添加项目时,会将依赖module引入两份,\WEB-INF\classes下一份,\WEB-INF\lib下jar包一份,导致springbean循环加载。 1、选中所需要部署的项目。右键->properties->MyEclipse->Deployement Assembly 在下方点开Merged deployment of modules 将默认的Enable merged deployment of Utility and EJB modules复选框勾去掉即可 他下面的提示信息其实也很明显,如果勾选的话会将你所引入的工程合并到WEB-INFO/classes目录下,这也就是为什么会配置文件相互覆盖的原因了 2、验证方法部署的为:Exploded而引入的是:packaged,在到工程的lib目录下面去查看就可以看到构建好的jar包了。 3、注意,由于现在趋向于用maven来构建项目,会不自觉的为所有jar包加上版本号,但我亲测如果手动添加版本号会生成两个同样的jar包一个是nes.jar,一个则是nes.1.0.0.jar在部署之后还的注意在tomcat中将多余的jar包删除掉,或者不给这个jar包命名版本号即可。 |
|
来自: 好闺女瑶瑶 > 《MyEclipse》