Maven下打包,War包、Jar包,别再傻傻分不清

书到用时方恨少,少到分不清?

星期五,要把开发好的项目发布到测试环境上,需要打包。在打包前,突然想到一个问题,到底是应该打包成war包呢,还是打包成jar包呢,之前也没有打过包。曾经有那么几次,上司让我把编译过的项目发给他,当时还一脸懵逼,不知所措,所幸他告诉我,就是tomcat路径下的压缩包,现在回忆一下,但也不记得那是war包还是jar包?

在使用maven建项目的时候,有选择是jar包还是war包,当时也没有考虑那么多,更没有想到什么war包和jar包,直接都默认成war包了,现在要发布项目,还是要好好分一下到底应该使用什么包,不然怎么发布项目呢?

Jar介绍

Jar包, 扩展名是.jar,是java application archive的简称,包含java的普通类库、资源、辅助文件等。

脑海中印象

是使用maven之前,需要什么架包都是手动导入的,比如需要连接mysql数据库的架包,就把这个架包通过开发工具引入,或者手动拷贝到lib文件夹下,这些架包都是jar包。

War介绍

War包,扩展名为.war,是Web application archive的简称,一看全称就知道是web应用程序,一个Web应用程序包括单独的一组文件、类和资源,有class文件,也有jsp文件。

脑海中印象

在以前的项目中,比如使用SSH框架时,开发的项目需要部署在Tomcat下才能运行,启动Tomcat前,先把项目发布到Tomcat下,启动Tomcat后,Tomcat就会把整个项目进行编译,编译后的java文件都为字节码文件,后缀.class,使用反编译软件才能将其打开,jsp文件依旧是jsp文件。

区别

war包中不仅仅是字节码文件,还包含jsp页面等等,war包是针对web应用程序的,打包好后可以放在Tomcat等容器下,启动Tomcat就可以运行的。jar包相当于一个封装好的工具,根据其定义,里面只有通类库、资源、辅助文件。

现在终于明白自己要打包成什么文件了,自己开发的都是服务接口,没有半个jsp文件,直接打包成Jar包就可以了。

maven下打包Jar包
第一步,使用maven clean命令

在eclipse下,选中项目,点击右键,选择 Run as,运行maven clean命令,运行结果居然报错,额,这个错误好像见过


3816895-0e48e6068535fa10.png
图-1

选中项目,点击右键,选择properties,找到maven,然后把输入框中的pom.xml去掉,如下图


3816895-f8c50ed2e1e9eddb.png
图-2

再次maven clean一下,运行结果BUILD SUCCESS。
第二步,使用maven install命令

接着使用maven install吧,换了个错, running on a JRE rather than a JDK?
看来,不会英文不行呀,这就话的意识是,使用的是jre而不是jdk,那就换吧,把jre换成jdk,再来一次,换了之后,运行结果BUILD SUCCESS。

第三步,找到项目根目录下的target文件夹,打包生成的文件都在这个文件夹下,拷贝出jar包,放在指定文件夹,准备发布吧
3816895-a3bf6a5676930962.png
图-3
第四步,打开Cmd窗口,进入到架包所在的文件夹下,也可以使用快捷键ctrl+shift+右键、点击 在此处打开powershell窗口,然后运行java -jar 架包的名称,就可以发布项目了。
3816895-b1d29587604a64b2.png
图-4

发现了没有,发布jar,是使用的是jar命令,打包了好几次,居然没注意到这个细节。

节外生枝

如果要发布好几个项目,每次都是这样输入命令,也很累呀,是不是呀。听说有bat文件,可以直接运行,那就用bat文件试一试吧,怎么写,会不会很难,试了之后才发现,So Easy。

第一步,创建一个文本文件,里面输入命令 java -jar 架包名称
3816895-528a1ca27cfa7fca.png
图-5
第二步,把文件的后缀改为.bat文件,然后保存关闭,每次启动的时候,双击这个文件即可
3816895-695f112edeadde6e.png
图-6

这样,每次项目需要重启时,只需轻轻一点就可以了,哪天自己不在,其他同事也可以启动,又省了很多力气。


3816895-47253e72024f750d.jpg
微信扫一扫,关注程就人生

猜你喜欢

转载自blog.csdn.net/weixin_33851429/article/details/90977332