大家有没有遇到这样的情况,在将was ear包初始部署后,中间更新了好几十个补丁,然后某一天要将同样的ear包发布到一个新的环境,在短时间内更新中间的几十个补丁肯定很崩溃,有没有偷懒的办法?答案是有的,可以通过下面几种办法将部署好的工程导出为一个ear包。
1、最简单的,通过was的控制台导出:ITPUB个人空间,@!U)h@YBJ)F
首先登录控制台,进入“企业应用程序”管理页面,选中要导出的工程,点击“导出”按钮,如下图:ITPUB个人空间vl.n g9P'A6T
ITPUB个人空间N^$Q_ID"f6aG
然后在出现的页面中点击链接即可下载工程到本地ITPUB个人空间#T q3EU"N4~*X$x
2、通过wsadmin.sh命令导出:ITPUB个人空间7IL0l\J
wsadmin.sh -username <username> -password <password> -c "\$AdminApp export DefaultApplication /tmp/DefaultApplication.ear"ITPUB个人空间)B#|3V6M? R {&t&ud7X
其中DefaultApplication是你部署的工程的名称,需要根据实际情况更改,后面是要导出的ear包的名称和路径。ITPUB个人空间5J&Ql,B0sH
注意在unix下执行该命令需要在$AdminApp的$符号前加上反斜杠。
3、使用EARExpander.sh命令生成ear包:ITPUB个人空间;^R5A4aPVA/Q+F7N
was ear包部署好后会将ear包存放在该Profile下的installedApps目录里,该ear包是一个解开的文件夹,
5Ut7WK6yVP0通过命令将该文件夹生成为一个ear包即可:ITPUB个人空间5Eh`U$wQ$?%L
EARExpander.sh -ear /tmp/DefaultApplication.ear
7_0^-bF"Y1s.Zy0-operationDir $PROFILE/installedApps/Node01Cell01/DefaultApplication.ear -operation collapseITPUB个人空间muK8_al&x
其中-ear指定要生成的ear包的目录和文件名,-operationDir指定was保存的ear工程的路径。
4、最复杂的,但是对所有的应用服务器部署的ear包都适用,使用zip命令:
q)K7E"Q7ZLt0拿DefaultApplication.ear举个例子吧,
(e\4m HR0先进入到Profile下的installedApps目录里,ITPUB个人空间? aX7X!}
再进入到DefaultApplication.ear\DefaultWebApplication.war下,ITPUB个人空间%p3b"P%o"vr t-@|M"}
执行命令zip -r DefaultWebApplication.war *ITPUB个人空间io)E v? K!Q
会将原来的DefaultWebApplication.war文件夹下的所有文件打包成一个zip文件,ITPUB个人空间JgS[[;oHX
然后将该zip文件移到DefaultApplication.ear目录下,删掉原来的DefaultWebApplication.war目录,ITPUB个人空间o;t'f7vKH^k4@ a
同样在DefaultApplication.ear目录下执行:zip -r DefaultWebApplication.ear *ITPUB个人空间@3__:@9b2R2a}K
生成的ear文件即可拿到其他服务器上去部署了。
*LG!k-O&e"fyq0是不是说的有点晕,动手做一遍就好了,呵呵。
使用上面方法生成的ear包都包含了部署时的一些信息,可以将ear包里的ibm打 头的xmi文件删除即可,比如WEB-INF目录下的ibm-web-bnd.xmi、ibm-web-ext.xmi,META-INF目录下的 ibm-application-bnd.xmi、ibm-application-ext.xmi、was.policy,再次部署时就和第一次部署没 有区别了。