书到用时方恨少,少到分不清?
星期五,要把开发好的项目发布到测试环境上,需要打包。在打包前,突然想到一个问题,到底是应该打包成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](https://upload-images.jianshu.io/upload_images/3816895-0e48e6068535fa10.png)
选中项目,点击右键,选择properties,找到maven,然后把输入框中的pom.xml去掉,如下图
![3816895-f8c50ed2e1e9eddb.png](https://upload-images.jianshu.io/upload_images/3816895-f8c50ed2e1e9eddb.png)
再次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](https://upload-images.jianshu.io/upload_images/3816895-a3bf6a5676930962.png)
第四步,打开Cmd窗口,进入到架包所在的文件夹下,也可以使用快捷键ctrl+shift+右键、点击 在此处打开powershell窗口,然后运行java -jar 架包的名称,就可以发布项目了。
![3816895-b1d29587604a64b2.png](https://upload-images.jianshu.io/upload_images/3816895-b1d29587604a64b2.png)
发现了没有,发布jar,是使用的是jar命令,打包了好几次,居然没注意到这个细节。
节外生枝
如果要发布好几个项目,每次都是这样输入命令,也很累呀,是不是呀。听说有bat文件,可以直接运行,那就用bat文件试一试吧,怎么写,会不会很难,试了之后才发现,So Easy。
第一步,创建一个文本文件,里面输入命令 java -jar 架包名称
![3816895-528a1ca27cfa7fca.png](https://upload-images.jianshu.io/upload_images/3816895-528a1ca27cfa7fca.png)
第二步,把文件的后缀改为.bat文件,然后保存关闭,每次启动的时候,双击这个文件即可
![3816895-695f112edeadde6e.png](https://upload-images.jianshu.io/upload_images/3816895-695f112edeadde6e.png)
这样,每次项目需要重启时,只需轻轻一点就可以了,哪天自己不在,其他同事也可以启动,又省了很多力气。
![3816895-47253e72024f750d.jpg](https://upload-images.jianshu.io/upload_images/3816895-47253e72024f750d.jpg)