美文网首页IT@程序员猿媛SpringBoot精选Java架构技术进阶
Maven下打包,War包、Jar包,别再傻傻分不清

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

作者: 程就人生 | 来源:发表于2019-06-01 15:00 被阅读19次

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

    星期五,要把开发好的项目发布到测试环境上,需要打包。在打包前,突然想到一个问题,到底是应该打包成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命令,运行结果居然报错,额,这个错误好像见过


    图-1

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


    图-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包,放在指定文件夹,准备发布吧
    图-3
    第四步,打开Cmd窗口,进入到架包所在的文件夹下,也可以使用快捷键ctrl+shift+右键、点击 在此处打开powershell窗口,然后运行java -jar 架包的名称,就可以发布项目了。
    图-4

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

    节外生枝

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

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

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


    微信扫一扫,关注程就人生

    相关文章

      网友评论

        本文标题:Maven下打包,War包、Jar包,别再傻傻分不清

        本文链接:https://www.haomeiwen.com/subject/irvotctx.html