第三方类库的部署形式
Web开发中,将项目打成War包进行部署是常见的。War包中通常包含了所需的多个第三方类库(如struts等等),为的是每个War包可以单独部署而不用依赖服务器(因为将第三方类库部署到服务器的共享库目录下可省去War包对其的包含)。
现在一个业务系统的开发,常常根据业务不同会将一个系统分为多个模块开发,对应Web的业务系统则分为多个Web模块。因此一个项目也常常按模块打包为多个War包,这些包一般也都部署在同一个服务器下。这样一来第三方类库就会出现多次,War的体积明显增大。而且遇有业务更新,第三方类库也会跟着重新加载。于是有了将第三方类库单独部署的想法。WebLogic的部署中有一种就是对库的部署,查阅文档后,发现将第三方类库按照可选包的形式进行部署即可,项目也无需什么改动,只要在MANIFEST.MF中添加几个属性即可。下面示例中,3rdparty属于jar的别名,Extension-List中必须使用别名(WebLogic的官方文档称之为逻辑名),可有多个,空格分隔;3rdparty-Extension-Name的第一段为Extension-List中定义的别名,3rdpatylib为jar的名称,此处不含后缀名;若有多个jar则第二行需要有多个。
?
Extension-List: 3rdparty3rdparty-Extension-Name: 3rdpartylib
?
配置好War中的MANIFEST.MF,开始整理第三方类库,将第三方类库的若干个jar打包为一个jar进行部署。经测试,这种方法貌似不成功,失去第三方类库的War并不能正常使用。于是将所有第三方类库解包,重新打包为一个jar,这个jar可以没有MANIFEST.MF。重新部署后,将不包含第三方类库的War重新部署,OK!
?
?
?