`
obullxl
  • 浏览: 183396 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Maven管理多个工程项目

    博客分类:
  • Java
阅读更多

一旦项目变大,一个工程就显得比较臃肿,一般会按照功能划分成几个工程,需要团队协作开发。

 

根据最近对Maven的学习,下面简单的介绍下,使用Maven管理多个工程的pom文件的设置。

 

假设项目是个WEB项目,我们有三个工程:aboy-common-lang,aboy-common-toolkit,aboy-common-web

 

先说下目录结果:

aboy-common

         |-----common-lang

         |          |___pom.xml

         |-----common-toolkit

         |          |___pom.xml

         |-----common-web

         |          |___pom.xml

         |___pom.xml

 

1、主控pom

主控pom是所有所管理的pom的父pom,也就是所有子pom的公共pom。

它的packaging属性为pom,

它管理其它pom的方式为:

<modules>
  <module>common-lang</module>
  <module>common-toolkit</module>
  <module>common-web</module>
 </modules>

 

主控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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.aboy.common</groupId>
	<artifactId>aboy-common</artifactId>
	<packaging>pom</packaging>
	<version>1.0</version>
	<name>aBoy Common</name>
	<url>http://obullxl.iteye.com</url>

	<dependencies>
		<!-- logging -->
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.13</version>
		</dependency>

		<!-- test -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	
	<modules>
		<module>common-lang</module>
		<module>common-toolkit</module>
		<module>common-web</module>
	</modules>

	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.0.2</version>
				<configuration>
					<source>1.5</source>
					<target>1.5</target>
					<encoding>GBK</encoding>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-resources-plugin</artifactId>
				<configuration>
					<encoding>GBK</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.0.2</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-eclipse-plugin</artifactId>
				<configuration>
					<downloadSources>true</downloadSources>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

 

2、common-lang的pom

必须增加对父pom的依赖:

<parent>
  <groupId>com.aboy.common</groupId>
  <artifactId>aboy-common</artifactId>
  <version>1.0</version>
 </parent>

它具有父pom的JAR包依赖,当然可以设置自己的JAR包依赖。

它的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/maven-v4_0_0.xsd">
	<parent>
		<groupId>com.aboy.common</groupId>
		<artifactId>aboy-common</artifactId>
		<version>1.0</version>
	</parent>
	
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.aboy.common</groupId>
	<artifactId>aboy-common-lang</artifactId>
	<packaging>jar</packaging>
	<version>1.0</version>
	<name>aBoy Common Lang</name>
	<url>http://obullxl.iteye.com</url>

</project>

 

3、common-toolkit的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/maven-v4_0_0.xsd">
	<parent>
		<groupId>com.aboy.common</groupId>
		<artifactId>aboy-common</artifactId>
		<version>1.0</version>
	</parent>
	
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.aboy.common</groupId>
	<artifactId>aboy-common-toolkit</artifactId>
	<packaging>jar</packaging>
	<version>1.0</version>
	<name>aBoy Common Toolkit</name>
	<url>http://obullxl.iteye.com</url>

</project>

 

4、common-web的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/maven-v4_0_0.xsd">
	<parent>
		<groupId>com.aboy.common</groupId>
		<artifactId>aboy-common</artifactId>
		<version>1.0</version>
	</parent>
	
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.aboy.common</groupId>
	<artifactId>aboy-common-web</artifactId>
	<packaging>jar</packaging>
	<version>1.0</version>
	<name>aBoy Common Web</name>
	<url>http://obullxl.iteye.com</url>

</project>

 

 

欢迎指正~~~~~~

 

1
1
分享到:
评论

相关推荐

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

    Maven多模块项目是一种高效、组织有序的Java项目结构,它允许开发者将大型项目分解为多个独立的、可管理的小模块,每个模块都有自己的特定功能,同时又可以协同工作。这样的结构便于代码重用、模块化开发和独立部署...

    springboot 基于maven的多模块工程

    在“springboot基于maven的多模块工程”中,我们讨论的核心概念是如何使用Maven来组织一个大型项目,将其分解为多个独立的模块,每个模块负责不同的功能。这样做的好处包括提高代码的可维护性、重用性和团队协作效率...

    mavenWeb空项目

    【标题】"mavenWeb空项目"所涉及的知识点主要...综上所述,"mavenWeb空项目"是一个包含Java Web开发基础的项目模板,利用Maven进行构建管理和单元测试,为开发者提供了一个良好的起点,便于快速开发和迭代Web应用程序。

    Maven管理ServiceMix工程

    【标题】:“Maven管理...总结来说,使用Maven管理ServiceMix工程能够帮助开发者更高效地组织和构建项目,同时简化依赖管理和部署流程。通过理解和熟练运用Maven的各种特性,可以提升ServiceMix项目开发的效率和质量。

    maven多工程搭建过程

    - 如果已经存在多个独立的Maven工程,可以通过Idea的“File -&gt; Open”菜单,一次性导入多个项目到同一个工作空间。 - 确保所有工程都在同一个工作目录下,Idea会自动识别它们为多模块工程。 2. **模块间的跳转** ...

    maven多模块项目构建过程

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

    SpringBoot使用Maven建立多模块工程

    1. **创建父工程**:首先创建一个Maven项目,然后在pom.xml中定义版本管理和共享依赖。 2. **创建子模块**:在父工程下,为每个模块创建新的Maven子项目,如api、pojo和web,并在各自pom.xml中声明对父工程的依赖。...

    maven-聚合项目-springMVC

    项目中提到的"springMVCParent"可能是指Maven的聚合模块,这种模块通常用来组织多个子模块,便于管理和构建整个项目。在Maven中,聚合项目通过在POM.xml中定义`&lt;modules&gt;`标签来包含其他子模块,使得一次命令可以...

    Maven聚合工程源码

    "Maven聚合工程源码"是指一个包含多个子项目的Maven工程,这些子项目共享同一个父POM(Project Object Model),用于统一管理和构建。 在Maven聚合工程中,父POM通常不包含任何代码,而是作为子项目之间的协调者。...

    第一个maven工程案例

    当多个依赖库有相同但不同版本的依赖时,Maven会自动解决依赖冲突,遵循“最接近依赖原则”。同时,`&lt;dependencyManagement&gt;`可以用来统一管理子模块的依赖版本。 5. **Maven插件** Maven插件扩展了Maven的功能,...

    北京动力节点-郭鑫-Maven管理多模块应用.pdf

    在介绍Maven管理多模块应用的场景描述中,提到了几个关键的模块构成: ***monModel:这是一个提供公共基础服务的模块,它包含了工具类和常量类等共享代码。通常在大型项目中,很多业务模块会共享一些通用的逻辑处理...

    spring+maven项目工程

    Maven则是一个强大的项目管理和构建工具,它帮助开发者管理依赖、构建项目以及执行自动化测试。本项目工程"spring+maven"整合了这两者,以实现高效且易于维护的Java应用。 首先,让我们深入理解Spring框架的核心...

    搭建maven工程

    Maven 多模块工程是指一个项目中包含多个子模块,每个子模块都可以是一个独立的项目。创建多模块工程可以提高项目的灵活性和可维护性。下面是创建 Maven 多模块工程的步骤: 1. 建立父工程 首先,需要创建一个父...

    ​实现maven项目中多版本依赖兼容使用解决方案

    然而,当项目引入多个库时,可能会遇到依赖冲突的问题。依赖冲突通常发生在两个或更多库使用相同类的不同版本时,Maven默认会选择最高版本的依赖,但这可能导致运行时错误或不兼容性。在本案例中,公司需要使用一个...

    maven聚合工程demo

    通过聚合,我们可以高效地管理多个子项目,通过继承,我们保持了配置的一致性。同时,"META-INF" 和 "WEB-INF" 目录揭示了项目的基本结构和 Web 应用的组织方式。这样的项目结构有助于提高开发效率和维护性。

    maven创建父子结构工程

    在Java开发领域,Maven是一个强大的项目管理和自动化构建工具,它极大地简化了项目的构建、依赖管理以及文档生成等过程。本篇文章将详细讲解如何使用Maven创建父子结构工程,以便于更好地组织和管理大型项目。 首先...

    maven创建web工程

    通过 Maven 创建 Web 项目能够帮助开发者快速搭建开发环境,实现自动化构建、依赖管理和部署等功能。本文将详细介绍如何使用 Maven 在 Eclipse 中创建一个 Web 工程。 #### 二、准备工作 在开始之前,请确保已经...

    Maven创建Java工程

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

    SpringBoot+maven构建Web项目(Maven父子工程)

    SpringBoot简化了Spring框架的配置,使得开发者能够快速地开发出高性能的Java应用,而Maven则是一个项目管理和集成工具,帮助管理项目的构建、依赖和报告。本文将详细介绍如何使用SpringBoot和Maven构建一个Web项目...

    maven聚合项目

    在本项目中,我们关注的是"Maven聚合项目",这是一个特殊类型的Maven项目,它可以管理多个相关但独立的子项目。 **一、Maven聚合项目** Maven聚合项目(Aggregator Project)的主要目的是将多个相关的Maven项目...

Global site tag (gtag.js) - Google Analytics