转:

maven的三种工程pom、jar、war的区别

2018年09月03日 10:02:53 houjx3 阅读数:2918更多

个人分类: maven
 

1.pom工程:用在父级工程或聚合工程中。用来做jar包的版本控制。

2.war工程:将会打包成war,发布在服务器上的工程。如网站或服务。

3.jar工程:将会打包成jar用作jar包使用。

补充一下,jdk9 后还可以打包 jmod(Java 模块化),厉害的是这个通过 jlink 命令,可以直接将 jmod 打包为对应环境的可执行的程序,告别了让用户安装 jdk 的步骤,现在也有对应的 maven 插件了

淘淘商城为例:

一. pom工程

1. taotao-parent:

taotao-parent是整个项目的父工程,它是一个pom工程。用来做整个项目的版本控制,也就是项目中所有要使用到的jar包的版本都集中由父工程管理。这样你在写其他工程pom文件中maven依赖时就不需要写版本号了。当然所有的项目都要先继承它才行。

2.taotao-manager:

创建taotao-manager用来做聚合工程,它也是一个pom工程。创建四个model分别是taotao-manager-pojo,taotao-manager-dao,taotao-manager-service,taotao-manager-web,同时会自动生成4个独立的maven工程。聚合工程只是用来帮助其他模块构建的工具,本身并没有实质的内容。具体每个工程代码的编写还是在生成的工程中去写。

2.1.使用聚合工程taotao-manager的意义就是:原本这些模块也是一个个独立的工程,现在将它们聚合到taotao-manager中,这样我们构建项目的时候就只要构建taotao-manager一个就行了。我们只要使用maven构建这个聚合工程taotao-manager就行了而不用去操心模块的构建,比如install时只要install taotao-manager就行。总之就是简化操作。正常的编码工作还是在对应的taotao-manager-pojo,taotao-manager-dao,taotao-manager-service,taotao-manager-web。工程中进行的。

二. war工程

1.taotao-rest,taotao-portal这些

这些工程都是要部署在服务器上的,所以要打包成war形式。这些工程有的是用户通过浏览器直接访问,有的是通过发布服务被别的工程调用。

三.jar工程

3.taotao-common

这个就是打包成jar的工程。它就是存放一些其他工程都会使用的类,工具类。我们可以在其他工程的pom文件中去引用它,和引用别的jar包没什么区别。

<dependency>
    <groupId>com.taotao</groupId>
        <artifactId>taotao-common</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

maven的三种工程pom、jar、war的区别的更多相关文章

  1. maven的三种工程pom、jar、war

    阅读数:739 maven中的三种工程: 1.pom工程:用在父级工程或聚合工程中.用来做jar包的版本控制. 2.war工程:将会打包成war,发布在服务器上的工程.如网站或服务. 3.jar工程: ...

  2. Maven三种打包方式jar war pom

    1.pom工程 用在父级工程或聚合工程中.用来做jar包的版本控制.必须指明这个聚合工程的打包方式为pom 2.war工程 将会打包成war,发布在服务器上的工程.如网站或服务.在SpringBoot ...

  3. 2017/2/24:Maven的pom jar war的区别

    首先,Run ——> Edit Configurations,这时候如下图: 然后点击左上角的加号,可以添加一个新的配置,如下图: 选择Maven,如下图: 下面填上自己的配置信息,点击appl ...

  4. jar,war,ear区别及java基础杂七八

    jar,war,earqu区别 这三种文件都可以看作是java的压缩格式,其实质是实现了不同的封装: jar--封装类war--封装web站点ear--封装ejb.它们的关系具体为:jar:      ...

  5. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  6. C++的三种继承方式详解以及区别

    目录 目录 C++的三种继承方式详解以及区别 前言 一.public继承 二.protected继承 三.private继承 四.三者区别 五.总结 后话 C++的三种继承方式详解以及区别 前言 我发 ...

  7. maven的三种项目打包方式----jar,war,pom

    1.pom工程:**用在父级工程或聚合工程中.用来做jar包的版本控制.必须指明这个聚合工程的打包方式为pom 2.war工程:将会打包成war,发布在服务器上的工程.如网站或服务.在SpringBo ...

  8. Apache Maven(三):POM

    什么是 POM? POM (Project Object Model) 项目对象模型.它是一个XML文件,其中包含有关Maven用于构建项目的项目和配置细节的信息.它包含大多数项目的默认值.例如,构建 ...

  9. JAVA基础知识之多线程——三种实现多线程的方法及区别

    所有JAVA线程都必须是Thread或其子类的实例. 继承Thread类创建线程 步骤如下, 定义Thead子类并实现run()方法,run()是线程执行体 创建此子类实例对象,即创建了线程对象 调用 ...

随机推荐

  1. # 《网络对抗》Exp1 PC平台逆向破解20155337祁家伟

    <网络对抗>Exp1 PC平台逆向破解20155337祁家伟 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会 ...

  2. 20155338《网络对抗》Exp8 Web基础

    20155338<网络对抗>Exp8 Web基础 实验内容 Web前端:HTML 使用netstat -aptn查看80端口是否被占用,如果被占用了就kill 原进程号,我的没有被占用. ...

  3. ElasticSearch入门 第九篇:实现正则表达式查询的思路

    这是ElasticSearch 2.4 版本系列的第九篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  4. Partition3:分区切换(Switch)

    在SQL Server中,对超级大表做数据归档,使用select和delete命令是十分耗费CPU时间和Disk空间的,SQL Server必须记录相应数量的事务日志,而使用switch操作归档分区表 ...

  5. Revit二次开发-根据视图阶段(Phase)创建房间

    最近开发业务中,有一个自动创建房间的功能,很自然的想到了Document.NewRooms2方法.但是当前功能的特殊之处在于,Revit项目视图是分阶段(Phase)的,不同阶段的房间是互相独立的. ...

  6. 金蝶盘点机PDA条码数据采集器WMS系统具体有哪些功能

    1.  使用汉码盘点机PDA实现仓库条码管理的好处 (1)  传统电脑管理软件出入库需要来回电脑跑人工手工电脑录单效率低,通过人眼识别商品品种和清点商品数量,容易造成录单错误.从而造成电脑管理软件库存 ...

  7. 比特币初始版本VC6.0编译

    1 源码下载 github上初始版本是bitcoin-0.1.5,可以从https://github.com/bitcoin/bitcoin下载,但是从网上可以找到更老版本bitcoin-0.1.0, ...

  8. PAT甲题题解-1050. String Subtraction (20)-水题

    #include <iostream> #include <cstdio> #include <string.h> #include <algorithm&g ...

  9. mysql select 字段别名是否可以用在 select中或者where中

    select column1+10 as c1,c1+10 as c2 from table1;想实现上面的效果,结果在mysql里面报错了,提示找不到c1这个列; -- 不同的 数据库不一样 一般不 ...

  10. Day Five

    站立式会议 站立式会议内容总结 442 今天:编写具体计划的界面 遇到的问题:相对布局.绝对布局理解不够深刻 明天:完成设定计划时间的功能 331 今天:添加书籍/计划按钮,添加书籍时有一个文件选择 ...