`
frank-liu
  • 浏览: 1682603 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用maven创建多工程项目

 
阅读更多

简介

    因为在工作中经常要使用到maven做工程开发。很多时候我们开发的项目不仅仅是一个单独的工程,出于更多的可重用和部署的目的,我们在大多数的情况下会使用多个工程进行开发。因此怎么使用maven来创建多工程的项目就有必要总结一下。在前面的一些文章里已经讨论过了maven相关的基础设置。

 

详细步骤

创建父工程

    通常的情况下,我们是希望创建一个父工程,它将作为一个所有工程的公共目录。里面包含有整个大的项目的描述。

    比如说,我们执行如下命令: 

 

mvn archetype:generate -DgroupId=com.yunzero -DartifactId=cloud-parent -DinteractiveMode=false

   

系统会输出一大堆如下的内容: 

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO] 
[INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO] 
[INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Batch mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /home/frank/programcode/maven
[INFO] Parameter: package, Value: com.yunzero
[INFO] Parameter: groupId, Value: com.yunzero
[INFO] Parameter: artifactId, Value: cloud-parent
[INFO] Parameter: packageName, Value: com.yunzero
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /home/frank/programcode/maven/cloud-parent
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.855 s
[INFO] Finished at: 2015-05-04T21:12:33+08:00
[INFO] Final Memory: 15M/303M
[INFO] ------------------------------------------------------------------------

 

    这个时候,如果我们去看当前的目录,会生成一个名字为cloud-parent的目录。上述的命令就是生成一个名字为cloud-parent的工程,而且里面的工程默认包空间名为com.yunzero。这个生成的目录结构如下图:

 

 

 

     除了生成的目录结构之外,我们再来看看生成的pom.xml文件的内容。

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.yunzero</groupId>
  <artifactId>cloud-parent</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>cloud-parent</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

     这是一个典型的maven工程pom描述文件。而且它默认的打包方式是生成jar文件。在这里,因为我们需要将该工程作为项目的父目录,所以需要将<packaging>元素里面的jar改为pom。同时,该文件家生成的其他文件并不是必要的,我们可以将它们都删除。这样,我们就得到一个仅仅包含有pom.xml文件的目录。

 

生成子工程

   假设我们还需要生成两个子工程,分别为cloud-common, cloud-service。我们可以在该工程目录中执行命令:

 

mvn archetype:generate -DgroupId=com.yunzero -DartifactId=cloud-common -DinteractiveMode=false

    这个时候,我们会发现在当前的目录里多了一个cloud-common的目录。这样整体的项目结构如下图:

 

 

     如果我们再去看当前目录下的pom.xml文件,会发现里面多了这么一个部分:

 

<modules>
    <module>cloud-common</module>
</modules>

     这部分就正好定义了父工程和所包含的子工程之间的关系。

     按照同样的方法,我们再定义另外一个工程cloud-service。

    

mvn archetype:generate -DgroupId=com.yunzero -DartifactId=cloud-service -DinteractiveMode=false

 

    这样,整个的工程就生成了。我们可以运行命令mvn clean install来编译和打包工程。

 

导入eclipse 

    执行命令:

mvn eclipse:eclipse

     在结束后运行eclipse,选择导入工程:

     然后选择我们刚才创建的工程所在目录:

 

     选择确定之后我们将看到有如下的两个工程被选择上了:

 

 

     这样,一个多工程的项目就被创建了。

 

  • 大小: 14.8 KB
  • 大小: 17.1 KB
  • 大小: 49.6 KB
  • 大小: 67.7 KB
  • 大小: 85.8 KB
分享到:
评论

相关推荐

    基于maven创建web项目

    基于maven创建web项目 ...本文介绍了基于maven创建web项目的步骤,包括搭建maven环境、集成maven到Myeclipse2013和创建maven架构下的WEB工程。通过这篇文章,读者可以学习到如何使用maven来构建和管理web项目。

    idea使用maven创建web项目详细教程

    本教程将指导您使用 IDEA 创建一个 Maven Web 项目,从安装 Maven 到配置 Maven 环境、创建 Maven 工程、pom.xml 文件配置、依赖管理等。 1. 安装 Maven 在 IDEA 中使用 Maven 之前,需要先安装 Maven。在 Maven ...

    在eclipse中不使用maven创建springboot工程所需jar包

    在不使用Maven的情况下,在Eclipse中创建Spring Boot工程,你需要手动管理依赖的jar包。以下是一些关于这些jar包及其在Spring Boot项目中的作用的关键知识点: 1. **jboss-logging-3.3.0.Final.jar**:这是一个日志...

    maven创建web工程

    通过以上步骤,我们成功地使用 Maven 和 Eclipse 创建了一个 Web 项目,并按照 Maven 的规范进行了结构调整。这种做法不仅有助于保持项目结构的清晰和一致,还能充分利用 Maven 的强大功能,提高开发效率。在未来...

    Maven创建Java工程

    本文将基于提供的文件信息,深入探讨如何使用Maven创建和管理包含多个子模块的Java工程项目。 #### Maven创建Java工程概述 在给定的描述中,提及了一个名为`mydemo`的web项目,该项目被细分为两个模块:`mydemo-...

    maven创建父子结构工程

    本篇文章将详细讲解如何使用Maven创建父子结构工程,以便于更好地组织和管理大型项目。 首先,理解Maven的父子结构(多模块项目)是至关重要的。在大型项目中,通常会将项目划分为多个子模块,每个子模块负责不同的...

    mavenWeb空项目

    6. **多模块项目**:Maven支持大型项目拆分为多个子模块进行管理,方便维护和构建。 **三、单元测试** 单元测试是针对软件中的最小可测试单元(如函数、方法)进行验证,确保其按预期工作。在Java中,常用的单元...

    手动创建maven工程

    本资源提供了一个手动创建的Maven工程示例,有助于初学者理解和掌握如何从零开始构建Maven项目。 首先,我们要理解Maven的核心概念——Project Object Model (POM)。POM是Maven项目的基本配置单元,包含了项目信息...

    hibernate+maven demo项目工程

    这个【hibernate+maven demo项目工程】是一个很好的学习资源,它涵盖了Maven的基本使用、Hibernate的配置与操作,以及如何组织Java项目结构。通过深入研究此项目,开发者可以更好地掌握这两项技术,并将其应用于实际...

    使用Maven搭建S2SH工程详解一:使用Maven创建struts2工程

    【使用Maven搭建S2SH工程详解一:创建Struts2工程】 在Java Web开发中,S2SH架构(Struts2 + Spring + Hibernate)是一种常见的应用框架组合,用于构建高效、灵活的企业级应用程序。本篇文章主要讲解如何利用Maven...

    使用ECLIPSE创建MAVEN工程图解

    使用ECLIPSE创建MAVEN工程图解 Eclipse 是一个功能强大且广泛使用的集成开发环境(IDE), Maven 是一个基于项目对象模型(POM)的项目管理工具。本文将指导您如何使用Eclipse 创建 Maven 工程,并了解 Maven 的...

    maven构建项目工程

    在"Maven构建项目工程"中,我们可以深入了解Maven如何帮助我们快速、简便地创建和管理项目。 首先,创建一个新的Maven项目可以使用`mvn archetype:create`命令。在这个例子中,我们使用了`-DgroupId=org.lzk.ssh`和...

    maven多模块项目工程-已搭建好

    总之,"maven多模块项目工程-已搭建好"是一个已经配置好的、使用Eclipse开发的项目结构,通过"xd-parent"模块实现了依赖和插件的集中管理,方便开发者进行模块化开发,提高了项目的可维护性和开发效率。在实际使用中...

    maven多模块项目构建过程

    本篇文章将详细探讨"Maven多模块项目构建过程",并结合提供的资源"搭建maven多工程模块步骤",来深入理解如何创建和管理一个包含多个子项目的Maven工程。 1. Maven多模块项目概述: Maven多模块项目是指由一个父...

    eclipse 创建maven 项目 动态web工程完整示例

    ### Eclipse 创建 Maven 项目 动态 Web 工程完整示例 #### 一、创建 Maven 项目 在 Eclipse 中创建 Maven 项目时,首先要确保已安装 Maven 插件。如果 Eclipse 的新项目列表中未找到 Maven 选项,可以通过 **Other...

    Maven创建Web项目

    以上就是使用Maven创建一个基于SSM的Web项目的基本流程。这个框架组合在BI产品开发中非常常见,因为它提供了强大的功能,包括依赖管理、数据库操作、事务控制、模型-视图-控制器分离等,有助于提升开发效率和项目...

    SpringBoot使用Maven建立多模块工程

    首先,我们从【标题】"SpringBoot使用Maven建立多模块工程"出发,了解其核心概念。Maven是一个项目管理和综合工具,它管理项目的构建、报告和文档,通过POM(Project Object Model)文件定义项目的依赖和构建过程。...

    IntelliJ IDEA 构建maven多模块工程项目(详细多图)

    构建 Maven 多模块工程项目是使用 IntelliJ IDEA 实现大型项目开发的重要步骤。下面是对 IntelliJ IDEA 构建 Maven 多模块工程项目的详细介绍。 继承 在 Maven 中,继承是指子模块可以继承父模块的依赖项和配置。...

    maven多工程搭建过程

    本文将详细讲解如何在IntelliJ IDEA(Idea)中创建和管理多Maven模块工程,以便更好地组织和协同开发复杂的软件系统。 一、Maven简介 Maven是一个基于项目对象模型(Project Object Model,POM)的概念,它能够自动...

    maven 逆向逆向工程

    1. **Maven Archetype插件**:Maven Archetype插件是实现逆向工程的核心工具,它可以创建基于模板的新项目。在逆向工程中,Archetype插件会分析已存在的类和资源,生成相应的pom.xml文件以及项目目录结构。 2. **...

Global site tag (gtag.js) - Google Analytics