一、建立以pom为packaging的项目为,然后再以这一个项目为parent project来聚合其他子项目
       
  • 新建立一个以pom的项目
  • 改写pom文件,依赖web-common,这样就可以将web-common中的jar包都实现过来,这个有点像 java中implement了一个接口后,在实现了吧。我们是packaging为pom的项目,所以也是给准备实现了该maven的project,做好铺垫吧。
    1. <projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
      <groupId>com.company</groupId>
      <artifactId>web-parent</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      </parent>
      <groupId>com.company</groupId>
      <artifactId>web-test</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>pom</packaging>
      <dependencies>
      <dependency>
      <groupId>com.company</groupId>
      <artifactId>web-common</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      </dependency>
      </dependencies>
      </project>
     
     
  • 所以我们会看到项目的初始文件目录,很简单

 
 
 
 
二、我们接下来要根据上面建立的项目实现聚合的例子
 
  • 点击web-test这个项目,右键,新建一个maven的module
  • 创建一个来存放pojo的module部分,packaging为jar(不要选择pom或者war,具体看上一篇)

  • 点击finish
  • 这个时候,我们会发现web-test中的pom文件多了下面的内容
    1. <modules>
      <module>web-test-pojo</module>
      </modules>
  • 说明我们把web-test-pojo已经聚合到web-test中去了。
  • 同时web-test-pojo的内容是继承了web-common中的部分内容,而web-test-pojo的pom其实是不用修改的。
 
 
 
三、同时我们再建立以web-test为基础的web-test-mapper和web-test-service的module,这个和步骤二是一模一样的,唯一有区别的地方就是建立完后要在pom文件中加入每个模块自己单独需要的dependencies。另外一个就是web-test-mapper是依赖于web-test-pojo,所以web-test-mapper中的dependencies是含有web-test-pojo的dependency,而web-test-service则是依赖于web-test-mapper。所以下面将展示web-test-mapper和web-test-service的pom文件。
  • web-test-mapper的pom文件如下:

    1. <projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
      <groupId>com.company</groupId>
      <artifactId>web-test</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>web-test-mapper</artifactId>
      <!-- 依赖管理 -->
      <dependencies>
      <dependency>
      <groupId>com.company</groupId>
      <artifactId>web-test-pojo</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      </dependency>
      <dependency>
      <groupId>com.github.miemiedev</groupId>
      <artifactId>mybatis-paginator</artifactId>
      </dependency>
      <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      </dependency>
      <!-- MySql -->
      <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      </dependency>
      <!-- 连接池 -->
      <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      </dependency>
      </dependencies>
      </project>

       

     
  • web-test-service的pom文件
  • <parent>
    <groupId>com.company</groupId>
    <artifactId>web-test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    </parent>
  • 此时web-test-service继承了web-test-pojo父类项目的jar包
    1. <projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
      <groupId>com.company</groupId>
      <artifactId>web-test</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>web-test-service</artifactId>
      <dependencies>
      <dependency>
      <groupId>com.company</groupId>
      <artifactId>web-test-mapper</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <!-- Spring -->
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      </dependency>
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      </dependency>
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      </dependency>
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      </dependency>
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      </dependency>
      </dependencies>
      </project>
 
 
 
四、建立以war为基础的Maven项目,我们之前已经建立了三个以web-test为parent的Maven的jar的模块,但是要发布一个web项目,必须是有war包,war中才含有文件夹来存放前端的js,jsp等文件啦。和上面一样,在web-test上面创建module,不同的是,创建的packaging是war
 
  • 创建一个module
  • 选择war
  • 在pom文件中加入自己想要的dependency
    1. <projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <parent>
      <groupId>com.company</groupId>
      <artifactId>web-test</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>web-test-web</artifactId>
      <packaging>war</packaging>
      <!-- 依赖管理 -->
      <dependencies>
      <dependency>
      <groupId>com.company</groupId>
      <artifactId>web-test-service</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      </dependency>
      <!-- JSP相关 -->
      <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      </dependency>
      <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <scope>provided</scope>
      </dependency>
      <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId>
      <scope>provided</scope>
      </dependency>
      <!-- 文件上传组件 -->
      <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      </dependency>
      </dependencies>
      </project>
 
 
 
五、此时,我们可以看到web-test其实已经聚合四个module,四个module在web-test的基础建立起来,但是他们又是一个整体,所以,当项目发布的时候,其实以web-test为单位的。
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.company</groupId>
<artifactId>web-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.company</groupId>
<artifactId>web-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.company</groupId>
<artifactId>web-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<modules>
<module>web-test-pojo</module>
<module>web-test-mapper</module>
<module>web-test-service</module>
<module>web-test-web</module>
</modules>
</project>

 
 
六、其实到了这里,我们就把一个项目的聚合和模块被聚合的例子讲完了,但是如果要跑这个项目也是可以的。
  • 在web-test中pom的文件加入以下内容,将tomcat的插件配置到web-test中去
  1. <build>
    <!-- 配置插件 -->
    <plugins>
    <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <configuration>
    <port>8080</port>
    <path>/</path>
    </configuration>
    </plugin>
    </plugins>
    </build>
  • 另外在,web-parent和web-common安装到本地的仓库中去
    在web-parent项目上面右键,然后run as 
  • 然后在goal 填入install
  • 同样的步骤在web-common项目执行
  • 执行后,在web-test这个主项目中run下面的代码  clean tomcat7:run

    最后就可以登陆看web-test中的首页了,嘻嘻

Maven聚合和继承的更多相关文章

  1. 06 Maven 聚合和继承

    Maven 聚合和继承 1. 聚合 2. 继承 <parent> <groupId>org.apache.karaf.demos</groupId> <art ...

  2. maven聚合与继承笔记

    maven聚合 聚合的目的是为了快速构建项目,当我们有几个maven模块,想要一次性构建,而不是到每个模块下面去执行maven命令,这时候就需要使用maven聚合(或者称为多模块). 使用聚合的时候, ...

  3. (十四)Maven聚合与继承

    1.Maven聚合 我们在平时的开发中,项目往往会被划分为好几个模块,比如common公共模块.system系统模块.log日志模块.reports统计模块.monitor监控模块等等.这时我们肯定会 ...

  4. Maven——聚合与继承

    原文:http://www.cnblogs.com/xdp-gacl/p/4058008.html 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 ...

  5. Maven聚合和继承的详细解释

    说到聚合与继承我们都非常熟悉,maven相同也具备这种设计原则.以下我们来看一下Maven的pom怎样进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高. ...

  6. 笔记:Maven 聚合和继承

    聚合模块 我们希望一次构建两个或更多项目,而不是到每个模块的目录下分别执行mvn命令,Maven 聚合这一特性就是为该需求服务的, 为了使用聚合,我们必须创建一个聚合模块,通过该模块与其他项目聚合,并 ...

  7. maven课程 项目管理利器-maven 3-10 maven聚合和继承 4星

    本节主要讲了以下内容: 1 maven聚合 2 maven继承 1 maven聚合 <!-- 聚合特有标签 --> <groupId>com.hongxing</grou ...

  8. maven学习(十二)——maven聚合与继承实战

    聚合与继承实战 创建四个Maven项目,如下图所示:

  9. Maven 教程(14)— Maven聚合与继承

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79553011 1.Maven聚合 我们在平时的开发中,项目往往会被划分为好几个模 ...

  10. Java开发学习(三十)----Maven聚合和继承解析

    一.聚合 分模块开发后,需要将这四个项目都安装到本地仓库,目前我们只能通过项目Maven面板的install来安装,并且需要安装四个,如果我们的项目足够多,那么一个个安装起来还是比较麻烦的 如果四个项 ...

随机推荐

  1. centos:mysql主从同步配置(2018)

    centos:mysql主从同步配置(2018) https://blog.csdn.net/liubo_2016/article/details/82379115 主服务器:10.1.1.144; ...

  2. Android多渠道打包且根据不同产品打包不同的assets资源目录

    因为项目中存在多种环境,既要区分bebug与release版本,release又要区分测试环境与生产上线环境,每次打包都得浪费不少的等待时间:并且哪个版本有问题还得去切换环境一个个打包,关键是还得牢记 ...

  3. 日语能力测试N1、N2级听力必备核心词汇—头发篇

    日语能力测试N1.N2级听力必备核心词汇—头发篇 要想在短时间内迅速提高日语听力能力的水平,除了每天练习(用2倍的速度)真题之外,掌握听力的核心词汇也是一个必要的好方法. 髪(かみ)--头发髪型(かみ ...

  4. c# task笔记

    class Program { //创建Task任务的三种方式(无返回值) static void Main(string[] args) { //方法一 Task task1 = new Task( ...

  5. java线程间的通讯

    主要通过wait()和notify()方法进行线程间的通讯 class Product extends Thread{ String name; float price; boolean flag = ...

  6. 万兴神剪手 Wondershare Filmora v9.2.11.6 简体中文版

    目录 1. 介绍 2. 简体中文9.2.1.10汉化版下载 3. 安装和激活说明 1. 介绍 万兴神剪手 Filmora 是一款界面简洁时尚.功能强大的视频编辑软件,它是深圳万兴科技公司近年来的代表作 ...

  7. SecureCRT文件和文件夹显示不同颜色(像linux中那样效果)

    如何设置secureCRT使用的他可以像linux文件和文件夹显示不同的颜色呢 原先显示效果如下: 效果图 配置

  8. mariadb主从架构

    mariadb主从架构(异步)和集群 一般应用的场所是网站,主的机器是可以写可以读,从的机器可以读,也可以写,但不会同步.只有主的机器增删改,从的机器才会同步. 主从至少三个线程:dump.I/O t ...

  9. shell报错:-bash: [: ==: 期待一元表达式 解决方法 ([: ==: unary operator expected)

    shell报错:-bash: [: ==: 期待一元表达式 解决方法 ([: ==: unary operator expected) blogdaren 2015-02-26  抢沙发 14916人 ...

  10. 如何使用windows performance recorder

    先下载WPA TOOLS:从该地址下载,选最新的版本,然后可以只选择下载WPA工具 后面编写XML文件等等,可以参考这篇文章. 需要注意: 用管理员启动cmd后,如果想运行特定路径的文件,需要带上绝对 ...