jar:可以分两种,一种是sdk,提供给其他项目使用的接口或者公共类库,这种打包不需要打依赖,只打本工程的文件即可。
另一种是main程序,比如说定时任务或者rpc服务等,这种是需要在生产环境运行的,需要打依赖,可以使用类似assembly这样的插件。
war:如果使用maven则比较方便,因为maven有自己的文件目录规范,并且会自动把依赖的jar包打入war包lib目录,这一点通过war-plugin的来实现的,不需要借助其他plugin:
http://maven.apache.org/plugins/maven-war-plugin/overlays.html