1.背景
最近部署项目遇到一个问题,在添加war exploded包时,我要启动的项目没有打成war exploded包。网上找了一下,几乎全是在 File->Project Settings->Artifacts…里面添加一个war包。过程复杂,结果也不是我想要的,我需要的是war exploded包,不需要war包。最后找到原因,记录一下。
2.解决
maven项目,clean、install会自己打包,打包的格式在pop.xml中指定。由于我的项目没有指定install后的打包方式,所以在启动的时候找不到对应的war包。
pop.xml文件
在对应项目的pom.xml文件中添加一句文中红线部分代码,重新clean、install;部署war exploded包已经生成。完美解决。
总结:
1.war包和war exploded包有何区别?
区别在于war包不支持热部署,war exploded支持热部署(热部署就是项目启动后,修改代码,不需要重启项目,修改内容已在项目中体现,热部署可以提高开发效率)。所以一般在服务器上部署项目使用war包,开发时使用war exploded 包。
2.打包最简单的方式是什么?
现在绝大多数项目都是maven管理的,打包也可以交给maven。在pom.xml中添加打包的配置就行了,具体配置如上图所示,一行代码解决问题。
3.maven中package、install、deploy三者都能打包,具体有何联系及区别?
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库