Maven中jar,pom,war的区别是:pom工程用在父级工程或聚合工程中。用来做jar包的版本控制。war工程:将会打包成war,发布在服务器上的工程,如网站或服务。所以service通常打包成war包。jar工程:将会打包成jar用作jar包使用。
pom工程
pom工程用在父级工程或聚合工程中。用来做jar包的版本控制。
pom打出来可以作为其他项目的maven依赖,比如你写了两个工程,工程a写了一些工具类,然后你可以把它打成pom,再在工程b里面添加a的依赖,然后你在工程b中就可以使用a定义好的工具类。
Maven是以项目为中心的设计。POM(project object model)是Maven对一个单一项目的描述。没有POM的话,Maven是毫无用处的——POM是Maven的核心。是POM实现的并驱动了这种以模型来描述的构建方式。
war工程
war工程将会打包成war,发布在服务器上的工程,如网站或服务。所以service通常打包成war包。war常用于java web工程,但也不是绝对的,war也可以用java -jar xxx.war执行,前提是你有配置main函数入口
war包是Sun提出的一种web应用程序格式,与jar类似,是很多文件的压缩包。war包中的文件按照一定目录结构来组织。根据其根目录下包含有html和jsp文件,或者包含有这两种文件的目录,另外还有WEB-INF目录。通常在WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类(如JavaBean)。通常这些所依赖的类也可以打包成jar包放在WEB-INF下的lib目录下。
jar工程
jar工程将会打包成jar用作jar包使用。
jar是maven出来之前三方库普遍使用的方式,比较常见的是jdbc驱动包,一般从官网下载下来的都是jar文件。也可以打成可执行文件,类似.exe那样的,用命令java -jar xxx.jar执行。
一个可执行的jar 文件是一个自包含的 Java 应用程序,它存储在特别配置的JAR 文件中,可以由 JVM 直接执行它而无需事先提取文件或者设置类路径。要运行存储在非可执行的 JAR 中的应用程序,必须将它加入到您的类路径中,并用名字调用应用程序的主类。但是使用可执行的 JAR 文件,我们可以不用提取它或者知道主要入口点就可以运行一个应用程序。可执行 JAR 有助于方便发布和执行 Java 应用程序。
延伸阅读:
JAR相关特点
JAR 文件格式提供了许多优势和功能,其中很多是传统的压缩格式如 ZIP 或者 RAR 所没有提供的。它们包括:
安全性 可以对 JAR 文件内容加上数字化签名。这样,能够识别签名的工具就可以有选择地为您授予软件安全特权,这是其他文件做不到的,它还可以检测代码是否被篡改过。
减少下载时间 如果一个 applet 捆绑到一个 JAR 文件中,那么浏览器就可以在一个 HTTP 事务中下载这个 applet 的类文件和相关的资源,而不是对每一个文件打开一个新连接。
压缩 JAR 格式允许您压缩文件以提高存储效率。
传输平台扩展 Java 扩展框架(Java Extensions Framework)提供了向 Java 核心平台添加功能的方法,这些扩展是用 JAR 文件打包的(Java 3D 和 JavaMail 就是由 Sun 开发的扩展例子)。
包密封
存储在 JAR 文件中的包可以选择进行密封,以增强版本一致性和安全性。密封一个包意味着包中的所有类都必须在同一 JAR 文件中找到。
包版本控制
一个 JAR 文件可以包含有关它所包含的文件的数据,如厂商和版本信息。
可移植性
处理 JAR 文件的机制是 Java 平台核心 API 的标准部分。
文章标题:Maven中jar,pom,war的区别在哪里,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38063