在Eclipse中创建Maven多模块工程的例子
如果,你需要创建多个项目,项目之间即独立又有关系,那么创建一个Maven多模块项目是个非常好的选择,也非常cool!怎么在Eclipse里面创建多模块工程,以及需要注意哪些地方,我在这里做个简单的介绍。
一、准备
若想在Eclipse里面做这些的话,那么在做这一切前,请确认你是否已经在eclipse里面安装了maven插件。如果没有装插件,那只能通过命令行去做了。
好,现在假设已经在Eclipse里面装了maven插件,那么我们一起用Eclipse来创建Maven多模块项目吧!
二、先创建父项目
- 在Eclipse里面New ->
Maven Project
; - 在弹出界面中不要选择“Create a simple project”(这样就可以使用archetype来创建项目)
- 使用默认的Archetype(默认:GroupId:org.apache.maven.archetypes,Artifact Id:maven-archetype-quickstart)
- 设置工程的参数,见下图
<iframe id="iframe_0.2960056195753932" style="border: medium; border-image: none; width: 618px; height: 545px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://www.blogways.net/images/post/maven-modules1.png?_=4351921%22%20style=%22border:none;max-width:1518px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.2960056195753932',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no"></iframe> - 点击完成
这样,我们就按常规模版创建了一个Maven工程。我们还需要对这个工程进行修改。
因为,这是一个父项目,不需要有什么源码,那么,我们在Eclipse中将这个工程下的不用的目录都删除,仅留下pom.xml
文件就行了。删除后的目录结构,如下图:
<iframe id="iframe_0.022282215906490377" style="border: medium; border-image: none; width: 227px; height: 72px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://www.blogways.net/images/post/maven-modules2.png?_=4351921%22%20style=%22border:none;max-width:1518px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.022282215906490377',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no"></iframe>
工程里面还有个Maven Dependencies
,别管他,后面会让他自动消失。
另外,还需把pom.xml
中的<packaging>jar</packaging>
修改为<packaging>pom</packaging>
这时,可能Eclipse中会显示工程报错,根据提示操作,选择工程然后点击弹出菜单 Maven -> Update Project
,于是Ok了。
三、创建子项目
- 选中刚建的父项目,在弹出菜单中点击 New ->
Maven Module
; - 如图配置
<iframe id="iframe_0.8335390476344266" style="border: medium; border-image: none; width: 618px; height: 539px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://www.blogways.net/images/post/maven-modules3.png?_=4351921%22%20style=%22border:none;max-width:1518px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.8335390476344266',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no"></iframe> - 使用默认的Archetype(默认:GroupId:org.apache.maven.archetypes,Artifact Id:maven-archetype-quickstart)
- 完成工程配置,见下图
<iframe id="iframe_0.7988350133952454" style="border: medium; border-image: none; width: 618px; height: 531px;" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://www.blogways.net/images/post/maven-modules4.png?_=4351921%22%20style=%22border:none;max-width:1518px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.7988350133952454',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no"></iframe> - 点击完成
这样一个子项目就创建完成了,在文件系统中,子项目会建在父项目的目录中。在父目录中运行mvn test
等命令,所有的子项目都会按顺序执行。
细心一点的人,可能会发现,通过这个步骤创建子项目的同时,会修改父项目的pom.xml
,增加了类似下面的信息:
<modules>
<module>module-children1-demo</module>
</modules>
这个信息,就是标记有哪些子模块。
重复创建子项目的步骤,可以创建多个子项目。
四、优化配置
虽然上面的步骤,可以完成多模块的创建,但是创建出来的多模块,在一个程序员的眼里,还是挺别扭的,怎么回事呢?对,存在重复。那让我们重构吧。
按上面步骤创建的子项目,在pom.xml
中有个parent
节点,所以,他可以继承父项目的相关信息。没错,父子项目中存在继承关系。
在子项目的pom.xml
中,子项目的groupId
和version
一般和父项目相同,那么可以把子项目的这两个参数删除,这样会自动继承父项目的取值。
同样,如果其他的一些属性,所有子项目都是一样的,那么可以上移到父项目中设置,子项目中无需重复设置。比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
可以仅在父项目中设置一次。
除了这种情况以外,还有一种情况,就是依赖和插件。依赖和插件的情况是这样,某一个依赖或插件可能会被大部分子项目所使用,但是也可能有些子项目不需要使用,这样使用上述的方式,简简单单地进行继承就不合适了。
Manen提供dependencyManagement
和pluginManagement
两个标签。使用这两个标签,可以在父项目中统一管理依赖和插件的配置参数,比如版本号啥的。而在子项目中,仅需列出需要使用的依赖和插件的groupId
和artifactId
就可以了,其他信息会自动从父项目管理的信息里面获取。
看例子,父项目中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
</dependencies>
</dependencyManagement>
在子项目中:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
四、命令行创建
上面就是在Eclipse里面创建多模块的步骤,和一些优化配置。
其中,具体的步骤可以根据实际情况进行适当的修改,比如选择Archetype
时,可以根据需要,选择适当的Archetype
。
上述步骤中的一些环节,也可以先通过命令行来生成雏形,然后再修改pom.xml
来实现。
相关推荐
创建Maven模块工程的步骤如下: 1. **初始化父模块**:使用`mvn archetype:create-from-project`命令或者在IDEA等集成环境中,从现有项目创建父模块。在pom.xml中,设置`<packaging>`为`pom`,并添加子模块的`...
当多个依赖库有相同但不同版本的依赖时,Maven会自动解决依赖冲突,遵循“最接近依赖原则”。同时,`<dependencyManagement>`可以用来统一管理子模块的依赖版本。 5. **Maven插件** Maven插件扩展了Maven的功能,...
本示例是一个"Maven 简单的父子项目例子",旨在展示如何通过Maven的多模块(multi-module)结构来组织和构建一个包含多个子项目的工程。 在这个例子中,项目名为 "test",它包含了三个子模块:jar a、war b 和 war ...
SpringBoot多模块例子-v2.0是一个典型的Java项目结构,旨在展示如何在Spring Boot框架下组织复杂的、模块化的应用。这个示例项目包含了五个主要部分:一个父工程和四个子模块,分别是demo-base, demo-dao, demo-...
在本示例"SpringBoot多模块例子-v1.0"中,我们看到的是一个采用SpringBoot构建的多模块项目,旨在提供一种有序、可维护的开发方式。 首先,我们要理解什么是多模块项目。在大型项目中,为了提高代码的可读性、可...
标题中的“普通的IDEA maven java项目demo(hello word)-1.8”指的是一个基于IntelliJ IDEA的Java项目,使用...对于更高级的开发者,这是一个了解如何将项目设置为Maven标准结构的好例子,以便于团队协作和持续集成。
在Maven或Gradle项目中,子模块会继承父模块的依赖和配置,这样可以确保所有子模块之间的一致性和减少重复的工作。在本例中,`parent`模块可能包含了Spring Boot的核心依赖和其他公共库的版本信息。 2. **实体模块...
本篇将详细解释如何使用Maven的POM打包多项目模块。 首先,多项目打包通常涉及到一个父项目(Parent Project)和若干子项目(Child Projects)。父项目主要负责定义共用的属性、依赖管理和插件配置,而子项目则各自...
"maven_parent.rar"中的例子展示了如何创建一个Maven父项目,该父项目可以包含并管理多个子项目,比如商品查询服务。这将使项目的结构更加清晰,代码复用更高效,同时也方便了依赖管理和版本控制。 【标签】"maven...
总结来说,"Spring最简单工程例子"将引导初学者了解Spring框架的基本概念,包括依赖注入、IoC容器、AOP和Spring MVC。通过"Springt1"这个实例,你将学习如何配置和运行一个基本的Spring项目,这对于理解和掌握Spring...
Maven支持通过继承和聚合来管理多个项目或模块之间的依赖关系。**继承**允许子项目继承父项目的配置,简化重复配置;而**聚合**则是将多个模块组织在一起,便于统一管理。 - **继承**:子POM文件可以继承父POM中的...
**Spring MVC 简易 Maven 工程** Spring MVC 是一个基于 Java 的开源框架,用于构建 Web 应用程序。它作为 Spring 框架的一部分,提供了模型-视图-控制器(MVC)架构,帮助开发者更高效地处理 HTTP 请求和响应。在...
在这个"ssm多模块基础框架+dubbo"项目中,开发者创建了一个包含SSM和Dubbo的简单应用,以实现服务的解耦和高可用。 **Spring框架**: Spring是Java企业级应用的核心框架,它提供了依赖注入(DI)和面向切面编程...
"ci_javamai打包工程子例子"这个标题暗示了一个Java项目,它包含了一个用于发送邮件的功能,并且已经按照需求被打包成了一个JAR(Java Archive)文件。这个过程对于将代码模块化、便于分发和集成到其他项目中至关...
这个例子工程可能包含了一个或多个配置类,用于定义和初始化应用中的 Bean。 **Maven 或 Gradle 构建工具** 为了构建和管理项目依赖,Spring 项目通常使用 Maven 或 Gradle。这些构建工具可以帮助我们自动化构建...
和maven官方例子一样,我学习教程也采用了父工程来管理各个阶段尝试不同的开源组件开发的模块。 \babasportrefactoring为父工程 \babasportrefactoring\babasportbluetripe为参考struts官方例子后重构的代码,同步...
spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他jar,所以,搞清楚它们之间的关系,配置maven依赖就可以简洁明了,下面举个例子,要在普通java工程使用spring框架,需要哪些jar呢?...
4. **Maven**:在这个例子中,项目使用了 Maven 作为构建工具。Maven 通过 `pom.xml` 文件管理项目的依赖关系,编译、测试和打包应用。`hdicmaven Maven Webapp` 可能是项目的目录结构,表示这是一个基于Maven的Web...
6. **创建Maven工程结构**:按照Maven的标准目录结构组织代码,如src/main/java、src/main/resources、src/main/webapp等。 7. **运行与测试**:使用Maven命令构建项目,部署到服务器,通过HTTP请求测试各个功能。 ...
"shopping-center-parent"这个项目就是一个很好的例子,它展示了如何利用Maven的父子工程(Parent-Child Modules)结构来实现代码的高效组织。在这个场景中,"shopping-center"工程包含了用户管理、产品管理和订单...