jar与war包的区别和命令

关于java maven项目的部署,一般需要打包成 jar包或者war包。

jar(java)和war(web)包两者的区别在于

1.war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。

2.jar 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序。

3.jar包:直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置。内置tomcat没有自己的日志输出,全靠jar包应用输出日志。但是比较方便,快速,比较简单。

4.war包:传统的应用交付方式,需要安装tomcat,然后放到waeapps目录下运行war包,可以灵活选择tomcat版本,可以直接修改tomcat的配置,有自己的tomcat日志输出,可以灵活配置安全策略。相对打成jar包来说没那么快速方便。

jar常用命令

jar命令一般用来对jar包文件处理,jar包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令,它会用lib\tool.jar工具包中的类。
jar常用参数
-c 创建一个jar包
-t 显示jar中的内容列表
-x 解压jar包
-u 添加文件到jar包中
-i 为指定的jar文件创建索引文件
-f 指定jar包的文件名
-v 生成详细的报造,并输出至标准设备

2、例子

以文件test创建test.jar (打jar包命令)

jar cf test.jar test

将jar中的文件解出到当前目录下 (解压jar命令,此格式也可以用unzip xxx.jar -d path 实现)

jar xf test.jar a.txt

查看jar文件列表

jar tf test.jar

向test.jar中添加或更新文件

jar vuf test.jar a.txt 

将命令执行的过程输出输出到文件a.txt中

jar vtf test.jar > a.txt

maven的常用命令

mvn clean package 
(-Dmaven.test.skip=true) --跳过maven测试用例

依次执行clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
mvn clean install
依次执行clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
mvn clean deploy
依次执行clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段

package 命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库.

install 命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库.

deploy 命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库.

你可能感兴趣的:(jar与war包的区别和命令)