maven中jar和war的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven中jar和war的区别相关的知识,希望对你有一定的参考价值。

jar包和war包的区别:

war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块。而jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的.
它们都是压缩的包,拿Tomcat来说,将war文件包放置它的\\webapps\\目录下,启动Tomcat,这个包可以自动进行解压,也就是你的web目录,相当于发布了。


war包:是做好一个web应用后,通常是网站,打成包部署到容器中。
jar包:通常是开发时要引用通用类,打成包便于存放管理。
ear包:企业级应用,通常是EJB打成ear包。


所有的包都是用jar打的,只不过目标文件的扩展名不一样。
WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。

参考技术A jar文件包括java普通类、资源文件和普通文件,在maven中即是打包src/main/java和src/main/resources资源文件夹下的所有文件。在打包的时候会自动生成MATA-INF文件夹,用于存储maven的pom信息和MANIFEST.MF文件。

war文件包含全部的web应用程序,即所有的java类,配置信息和jsp、js等静态资源。但是需要注意war引用war的时候会将应用war的资源全部拷贝到当前war的相同文件下,重名的文件会被替换。
war包依赖:

[html] view plain copy print?
<dependency>
<groupId>com.my.module</groupId>
<artifactId>module1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
</dependency>

module4依赖于module1,编译后module1类文件拷贝到了module4中classes文件下,jsp拷贝到了对应jsp目录下。
参考技术B jar包可以理解为java Project打成的包,一般是工具类,打包便于重复使用

war包可以理解为javaweb Project 打成的包;一般在发布项目的时候打包,便于传输
jar包:通常是开发时要引用的通用类,打成包便于存放管理。简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。;
war包需要在web容器比如tomcat中运行,即发布

请问maven工程jar包,war包,pom打包,都是怎么定的?

jar文件包括java普通类、资源文件和普通文件,在maven中即是打包src/main/java和src/main/resources资源文件夹下的所有文件。在打包的时候会自动生成MATA-INF文件夹,用于存储maven的pom信息和MANIFEST.MF文件。 war文件包含全部的web应用程序,即所有的java类,配置信息和jsp、js等静态资源。但是需要注意war引用war的时候会将应用war的资源全部拷贝到当前war的相同文件下,重名的文件会被替换。 war包依赖: [html] view plain copy print? com.my.module module一 0.0.一-SNAPSHOT war module四依赖于module一,编译后module一类文件拷贝到了module四中classes文件下,jsp拷贝到了对应jsp目录下 参考技术A 首先maven 工程是通过你的pom文件的设定来打包
jar 和war是两种打包方式,可以在pom文件中设定的
1、jar包主要应用于java 命令执行 比如java -jar
2、war包一般用于tomcat容器
现在springboot应用比较广,内置了tomcat容器,通常打包是jar多一点
参考技术B maven的pom有个标签叫做packaging,了解一下?

以上是关于maven中jar和war的区别的主要内容,如果未能解决你的问题,请参考以下文章

maven的三种工程pomjarwar的区别

理解:jar包和war包的区别

Java中jar和war的区别

Spring Boot中jar和war的区别?

maven正式版本和快照版本的区别

远程Debug项目(jar包和war包)