Eclipse下Maven工程多模块继承和聚合的创建

使用Maven对项目进行管理的时候,多模块的继承和聚合是必不可少的,本文简要说明一下在eclipse IDE下创建多模块工程。

1.Maven多模块的聚合

一个Maven工程下创建多个模块,然后用一个专门管理模块来将实际应用到的模块组织起来。

2.Maven多模块的继承

子模块通过继承父模块,来获的父模块中的pom.xml配置信息。

3.Maven多模块的继承+聚合

上图是将1和2组合起来,可以将父模块作为聚合模块和父模块,这样父模块就可以聚合(组织)其子模块,子模块可以继承父模块。

4.聚合和继承的关系

       区别 :

  • 对于聚合模块来说,它知道有哪些被聚合的模块,但被聚合模块相互独立。
  • 对于继承关系的父POM来说,它不知道有哪些子模块继承它,但那些子模块都必须知道自己的父POM。

 共同点 :

  • 聚合 POM与继承关系中的父POM的packaging都是pom。
  • 聚合模块与继承关系中的父模块除了POM之外都没有实际的内容。

5.使用Eclipse来搭建一个集成聚合和继承的工程

5.1创建一个Maven工程,其作为聚合模块

<groupId>secondriver</groupId>
	<artifactId>code-parent</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>

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

5.2创建JavaSE的Maven模块(code-utils,图中为code-utilss),并选择上面code-parent工程作为父工程.

5.3同上,创建JavaWeb的Maven模块(code-web),并选择上面的code-parent工程作为符工程。

5.4 Eclipse中的目录结构图

途中有三个工程,准确的说code-parent是maven工程,code-utils,code-web是code-parent工程下的两个模块;code-parent对其进行了聚合,code-utils,code-web继承了code-parent.

本地文件系统的目录结构:

code-parent下的pom文件即为父pom.xml,code-utils和code-web下的pom.xml继承该pom.xml.

5.5 code-parent的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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>secondriver</groupId>
	<artifactId>code-parent</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>

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

	<modules>
		<module>code-utils</module>
		<module>code-web</module>
	</modules>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<junit.version>4.10</junit.version>
	</properties>

	<description>
		这是父模块,对子模块进行了集成,子模块对该模块进行了继承。主要作用是对公共配置的统一管理
	</description>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies></dependencies>
	</dependencyManagement>

</project>

配置中packaging的值是pom,说明code-parent是一个聚合模块或者父模块,这里其属于两者。modules下配置了两个模块分别就是code-utils和code-web.

5.6code-utils和code-web的pom.xml

  • code-parent/code-utils/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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>secondriver</groupId>
		<artifactId>code-parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>code-utils</artifactId>
	<name>code-utils</name>

</project>

配置中默认的packaging的值为jar。

  • code-parent/code-web/pom.xml
<?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>secondriver</groupId>
		<artifactId>code-parent</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>

	<artifactId>code-web</artifactId>
	<packaging>war</packaging>
	<name>code-web Maven Webapp</name>
	<url>http://maven.apache.org</url>

	<build>
		<finalName>code-web</finalName>
	</build>
</project>

至此通过Eclipse创建多模块的Maven工程已完成。至于pom.xml如何配置,就另当别论了,关于maven的pom.xml配置更多信息参见:http://maven.apache.org/pom.html#Resources

时间: 2024-07-29 15:17:46

Eclipse下Maven工程多模块继承和聚合的创建的相关文章

解决eclipse下maven工程报错:Missing artifact jdk.tools:jdk

1.进入jdk/lib目录,执行: mvn install:install-file -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.7 -Dfile=tools.jar -DgeneratePom=true 2.加入依赖 <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</arti

Eclipse下Maven新建Web项目index.jsp报错完美解决(war包)

Eclipse下Maven新建Web项目步骤 1. 2. 3. 4. 5. 问题描述 最近用eclipse新建了一个maven项目,结果刚新建完成index.jsp页面就报错了,先把错误信息贴出来看看! 解决方法 第一种:直接在pom.xml文件中添加jar包支持 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <

eclipse中Maven工程使用Tomcat7以上插件

Maven中使用tomcat:run命令默认是使用Tomcat6的版本,现在要用websocket,需要用到Tomcat7以上的版本,在eclipse的Maven工程中配置如下 第一步:在项目的pom里面加入如下配置: <pluginManagement> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat6-maven-pl

eclipse导入maven工程,右键没有build path和工程不能自动编译解决方法

原文链接:https://blog.csdn.net/wusunshine/article/details/52506389 eclipse导入maven工程,右键没有build path解决方法: 由于.project文件缺少 <natures>        <nature>org.eclipse.jdt.core.javanature</nature></natures> 另外如果工程不能自动编译,需要在.project文件中增加如下配置: <b

Eclipse下maven项目自动打war包丢失jar包问题解决方法

以前用Eclipse测试maven 的web工程,在eclipse内部tomcat右键上点一下"clean"就可以把工作空间的web项目代码自动发布到"F:\IWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps"这个路径,十分的方便.如果tomcat里部署的war包选择的是"Add External Web Module"的话,那测试的话,就要哭了.每次

eclipse下maven springMVC 整合 mybatis

参考文档:http://blog.csdn.net/zhshulin/article/details/37956105 1.搭建maven工程,具体参见我另一篇博客:http://www.cnblogs.com/kangyun/p/5455108.html 进行到配置web.xml之前那一步就可以了 2.maven导入依赖,我的pom.xml文件的依赖如下所示: 1 <dependencies> 2 <dependency> 3 <groupId>junit</g

Eclipse中Maven工程缺少Maven Dependencies

Eclipse在引入Maven工程后,找不到Maven Dependencies.使得代码报错,具体如下图所示: 而正常Maven的工程如下所示: 产生这种现象的原因可能是工程对应的开发环境改变,本地Maven仓库地址和原来的不一致.其根本原因是Maven project的Maven选项未开启或启动无效. 为了解决这个问题我们只需要重启Dependency Management就可以了. 具体步骤:右击 Maven project --> Macven --> Enable Dependenc

Eclipse中将Maven工程转成SpringBoot工程

一.File ——>New ——>Maven Project 二.新建一个maven的web工程的目录结构如下: 三.会有一个错误:jsp报错. 四.这里我们不用管这个错误,直接将jsp文件删掉,就可以不报错了(因为目前前端我使用的是thymeleaf,使用html页面,所以不用jsp),另,将webapp文件夹下的web.xml文件删除,效果如下: 五.修改pom.xml文件,删掉所有的依赖(dependencies)和build标签. 效果如下: 六.百度搜索springboot,随便找一

Eclipse Kepler maven工程配置JDK1.8

首先需要下载插件:"Help" --> "Market Place" --> Search for java 8 kepler. install Java 8 support eclipse kepler sr2, Java 8 Facets for web tools eclipse kepler sr2 Java 8 support for m2e for Eclipse Kepler SR2 (if required) 然后在pom.xml文件中配