在eclipse或者myeclipse下构建maven项目,该项目由多个子模块组成。

1.创建一个父项目

NEW -->project-->maven-->maven Project,点击下一步,进入new maven Project的Select project name and location界面

,什么也不做,直接下一步到Select an Archetype界面。

在这个界面中选择maven-Archetype-site-simple,然后选择下一步,进入选择Enter a group id for the artifact的界面

,在group id 和artifact id中输入你的group和artifact名称。我用的分别是A和B,选择完成。这时会在eclipse中生成一个项目,项目名是B。

此时B的pom文件如下所示:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>A</groupId>
  5. <artifactId>B</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>pom</packaging>
  8. <distributionManagement>
  9. <site>
  10. <id>website</id>
  11. <url>scp://webhost.company.com/www/website</url>
  12. </site>
  13. </distributionManagement>
  14. <properties>
  15. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  16. </properties>
  17. </project>

2.创建子项目

2.1 将项目B中的src文件删除(可有可无,主要看个人需要)
2.2 选中项目B,点击右键,选择NEW -->project-->maven-->maven Module,点击下一步,在出现的界面中输入子模块的名称C,点击下一步,出现Select an Archetype界面。这时选择maven-Archetype-site-quickStart或者maven-Archetype-webapp(构建web层时使用),然后选择完成,即生成子项目C。

这时B的pom文件就变成了这样(和上面的比只是多了个modules标签):

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>A</groupId>
  5. <artifactId>B</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>pom</packaging>
  8. <distributionManagement>
  9. <site>
  10. <id>website</id>
  11. <url>scp://webhost.company.com/www/website</url>
  12. </site>
  13. </distributionManagement>
  14. <properties>
  15. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  16. </properties>
  17. <modules>
  18. <module>C</module>
  19. </modules>
  20. </project>

这时构建B的子项目完成,构建其他的子项目和此类似。

在构建第二个子项目D时可能在B中没有及时出现,这时只要把B项目刷新下就可以了。

ps:

其实在构建多模块的项目时,在选择父项目的类型时是可以选择任意的类型。选择项目类型的界面如下:

对于这些非常规类型的项目,如果想要成为父项目,需要做如下一些改动:

1.将pom.xml文件中的<packaging>jar</packaging>改为<packaging>pom</packaging>,若不换为pom则在打包的时候父项目会产生一个target文件;如果没有<packaging>pom</packaging>的可以在<version>0.0.1-SNAPSHOT</version>后面添加上这句话即可。

2.删除除pom.xml外的所有文件,其中JRE System Library是不能直接删除的,需要选择中,并单击右键Bulid Path-->Remove from bilud path即可移除。

这时的父项目就显得很干净整洁了。

其实在普通的项目上是不允许构建子模块的,能否在一个项目下创建子模块,主要取决于是否有<packaging>pom</packaging>这个配置。如果有这个配置则任何项目都可以创建子模块,硬要这样创建的话整个项目会变的不伦不类。看来maven在判断一个项目是否可以创建子模块其实是取决于这个配置的。

maven创建子项目(适用于多模块管理项目)的更多相关文章

  1. Maven学习 (六) 搭建多模块企业级项目

    首先,前面几次学习已经学会了安装maven,如何创建maven项目等,最近的学习,终于有点进展了,搭建一下企业级多模块项目. 好了,废话不多说,具体如下: 首先新建一个maven项目,pom.xml的 ...

  2. 使用Github管理项目代码的版本

    作为开源代码库以及版本控制系统,Github拥有140多万开发者用户.随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法. 在Git中并不存在主库这样的概 ...

  3. maven创建多模块项目

    在eclipse下构建maven项目,该项目由多个子模块组成. 1.创建一个父项目 NEW -->project-->maven-->maven Project,点击下一步,进入ne ...

  4. 类似Visual Studio一样,使用Qt Creator管理多个项目,创建子项目

    1. 简介 QtCreator是一个十分好用的跨平台IDE,由于最近需要在Windows和Mac同时写一个C++的代码,使用VS和XCode不能实现项目的统一管理(可以使用cmake来组织源码,但是每 ...

  5. IDEA 创建 Spring Boot 多模块项目(Multi Modules)

    本准备写点代码实例放到网站,太多的模板,反而每次新建工程的时候很麻烦.于是准备把这个章节的内容提前先讲讲.正好把这个代码也管理起来.话说这个多模块功能还挺爽. 写过 C# 项目用过 Visual St ...

  6. Maven 创建多模块工程

    1. 创建父项目 new -->project-->maven-->maven Project,然后下一步, 进入new maven Project的Select project n ...

  7. 使用 Maven 来管理项目 & 从 0 开始搭建 Maven 项目

    maven 是 apache 的一个开源软件,纯 Java 编写的,专门用于管理 Java 项目的一个工具. maven 就是一个工具而已,用不用都不耽误你刷刷的敲代码,那为什么我们还要学习它呢? 那 ...

  8. Maven学习--- 搭建多模块企业级项目

    我们先在eclipse中新建一个maven项目,pom.xml的文件如下: 搭建多模块项目,必须要有一个packaging为pom的根目录.创建好这个maven项目后,我们对着项目右键-->ne ...

  9. Mybatis与Spring整合,使用了maven管理项目,作为初学者觉得不错,转载下来

    转载自:http://www.cnblogs.com/xdp-gacl/p/4271627.html 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: mvn archetype ...

随机推荐

  1. 微信小程序(应用号)资源汇总整理

    微信小应用资源汇总整理 开源项目 WeApp - 微信小程序版的微信 wechat-weapp-redux-todos - 微信小程序集成Redux实现的Todo list wechat-weapp- ...

  2. 自动打开Accesibility Service 可以自动安装APP

    package com.venscor.helloworld;import java.io.BufferedReader;import java.io.IOException;import java. ...

  3. Sublime、Webstorm等在APICloud平台上全面支持WiFi真机同步和实时预览功能

    APICloud工具插件包括APICloud Studio.Sublime Text和Webstorm全面为开发者提供iOS和Android平台真机同步调试功能,不仅可以通过USB方式进行APP真机同 ...

  4. Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)

    本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...

  5. Docker入门简介

    Docker的概念 什么是Docker? Docker是一个开源平台,包含:容器引擎和Docker Hub注册服务器 Docker容器引擎:可以将开发者打包他们的应用和依赖包到一个可一直的容器中,然后 ...

  6. CentOS6.6安装virtualbox4.1.44

    本人用的是centos6.6,安装了virtualbox 4.1.44,启动后一直如上图报错,哪位前辈如果解决过这样的问题,麻烦指点指点,小弟在此先谢过了.

  7. DOM中文本节点索引方法

    问题 对于 jquery 接口text()只能取到有标签的 dom对象中 文本内容. 如果索引对象本身就是文本节点,则不好索引到, 没有相关的索引选择器. 例如: 对于<input>aaa ...

  8. PC管理端与评委云打分配合步骤及疑难问题汇编,即如何使用PC管理端的云服务管理功能

    一.前期环境及数据准备 A.PC管理端主要流程 1.进入菜单 编辑/选项/服务器 界面,如下图所示,采用我官方所提供的云服务,不采用自己假设的AppWeb服务. 切记:AppWeb服务和云服务只能二选 ...

  9. scipy科学计算库

    特定函数 例贝塞尔函数: 积分 quad,dblquad,tplquad对应单重积分,双重积分,三重积分 from scipy.integrate import quad,dblquad,tplqua ...

  10. Android -- 思考 -- 为什么要在项目中使用MVP模式

    1,其实有时候一直在找借口不去思考这个问题,总是以赶项目为由,没有很认真的思考这个问题,为什么我们要在项目中使用MVP模式,自己也用MVP也已经做了两个项目,而且在网上也看了不少的文章,但是感觉在高层 ...