码迷,mamicode.com
首页 > 其他好文 > 详细

Maven实战(六)--子模块的聚合和继承

时间:2016-08-07 21:52:20      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

1.聚合和继承的概念

聚合:将多个项目放到一起运行

新建父项目,在pom.xml中添加

    <modules>
        <module>SIP-utils</module>
        <module>SIP-web</module>
        <module>SIP-sql</module>
        <module>SIP-core</module>
    </modules>

这些就是被聚合的项目,这样mvn clean install这个pro的时候同时会将上面项目打包

继承:比如过个项目都用到junit,那么可以向java一样创建一个jutint父类

那么我们就可以在项目中继承一个父项目,在pom.xml进行如下配置

    <parent>
        <groupId>com.learnPro</groupId>
        <artifactId>SIP-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

2.通过命令行构建子模块

比如我们需要构建的模块结构如下:

2.1 构建父模块pro-parent

mvn org.apache.maven.plugins:maven-archetype-plugin:2.2:create -DgroupId=com.learnpro -DartifactId=pro-parent -DarchetypeArtifactId=maven-archetype-quickstart

这边碰到过个问题,之前用如下命令,但是构建不通过

mvn archetype:create -DgroupId=com.learnpro -DartifactId=pro-parent -DarchetypeArtifactId=maven-archetype-quickstart

解决方法,请参照:http://josh-persistence.iteye.com/blog/2258213

通过上面命令可以看到我们的项目已创建成功
这个时候,我们可以将src文件夹删除(因为这个父项目只是个容器,不需要任何代码)
修改pom.xml文件,将jar修改为pom,pom表示它是一个被继承的模块,修改后的内容如下

<project xmlns="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>

  <groupId>com.learnpro</groupId>
  <artifactId>pro-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging><!--从jar改为pom-->

  <name>pro-parent</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

2.2 构建子模块dao

在之前的文件夹中运行如下命令

cd pro-parent

mvn org.apache.maven.plugins:maven-archetype-plugin:2.2:create -DartifactId=pro-dao -DarchetypeArtifactId=maven-archetype-quickstart

编译成功后,在pro-parent的pom.xml中会自动增加如下内容

  <modules>
    <module>pro-dao</module>
  </modules>

让我们再来看看pro-dao的pom文件

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.learnpro</groupId>
    <artifactId>pro-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <groupId>com.learnpro</groupId>
  <artifactId>pro-dao</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>pro-dao</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

这里,它自动会添加<parent>,我们需要把<groupId>com.learnpro</groupId>和<version>1.0-SNAPSHOT</version>去掉,并加上<packaging>jar</packaging>因为我们已经有一个父模块了groupId和version会继承父模块中的groupId和version,最后将packaging打包方式设置为jar

3.eclipse插件构建项目

3.1 构建父项目

右键->new->other->搜索maven,选择Maven Project

技术分享
技术分享

3.2 构建子模块

右键->new->other->搜索maven,选择Maven Module

技术分享

这时候next,然后选择Maven项目模型,就可以创建对应的子模块
同时,我们可以发现pro-parent的pom文件中也增加了如下内容

  <modules>
    <module>pro-children</module>
  </modules>

这时候,我们也需要把<groupId>com.learnpro</groupId>和<version>1.0-SNAPSHOT</version>去掉,并加上<packaging>jar</packaging>

3.3 导入Maven项目

右键->Import->搜索maven,选择Existing Maven Project

选我们之前搭建的pro-parent

技术分享

Maven实战(六)--子模块的聚合和继承

标签:

原文地址:http://blog.csdn.net/odeviloo/article/details/52142148

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!