一旦项目变大,一个工程就显得比较臃肿,一般会按照功能划分成几个工程,需要团队协作开发。
根据最近对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>
欢迎指正~~~~~~
分享到:
相关推荐
Maven多模块项目是一种高效、组织有序的Java项目结构,它允许开发者将大型项目分解为多个独立的、可管理的小模块,每个模块都有自己的特定功能,同时又可以协同工作。这样的结构便于代码重用、模块化开发和独立部署...
在“springboot基于maven的多模块工程”中,我们讨论的核心概念是如何使用Maven来组织一个大型项目,将其分解为多个独立的模块,每个模块负责不同的功能。这样做的好处包括提高代码的可维护性、重用性和团队协作效率...
【标题】"mavenWeb空项目"所涉及的知识点主要...综上所述,"mavenWeb空项目"是一个包含Java Web开发基础的项目模板,利用Maven进行构建管理和单元测试,为开发者提供了一个良好的起点,便于快速开发和迭代Web应用程序。
【标题】:“Maven管理...总结来说,使用Maven管理ServiceMix工程能够帮助开发者更高效地组织和构建项目,同时简化依赖管理和部署流程。通过理解和熟练运用Maven的各种特性,可以提升ServiceMix项目开发的效率和质量。
- 如果已经存在多个独立的Maven工程,可以通过Idea的“File -> Open”菜单,一次性导入多个项目到同一个工作空间。 - 确保所有工程都在同一个工作目录下,Idea会自动识别它们为多模块工程。 2. **模块间的跳转** ...
本篇文章将详细探讨"Maven多模块项目构建过程",并结合提供的资源"搭建maven多工程模块步骤",来深入理解如何创建和管理一个包含多个子项目的Maven工程。 1. Maven多模块项目概述: Maven多模块项目是指由一个父...
1. **创建父工程**:首先创建一个Maven项目,然后在pom.xml中定义版本管理和共享依赖。 2. **创建子模块**:在父工程下,为每个模块创建新的Maven子项目,如api、pojo和web,并在各自pom.xml中声明对父工程的依赖。...
项目中提到的"springMVCParent"可能是指Maven的聚合模块,这种模块通常用来组织多个子模块,便于管理和构建整个项目。在Maven中,聚合项目通过在POM.xml中定义`<modules>`标签来包含其他子模块,使得一次命令可以...
"Maven聚合工程源码"是指一个包含多个子项目的Maven工程,这些子项目共享同一个父POM(Project Object Model),用于统一管理和构建。 在Maven聚合工程中,父POM通常不包含任何代码,而是作为子项目之间的协调者。...
当多个依赖库有相同但不同版本的依赖时,Maven会自动解决依赖冲突,遵循“最接近依赖原则”。同时,`<dependencyManagement>`可以用来统一管理子模块的依赖版本。 5. **Maven插件** Maven插件扩展了Maven的功能,...
在介绍Maven管理多模块应用的场景描述中,提到了几个关键的模块构成: ***monModel:这是一个提供公共基础服务的模块,它包含了工具类和常量类等共享代码。通常在大型项目中,很多业务模块会共享一些通用的逻辑处理...
Maven则是一个强大的项目管理和构建工具,它帮助开发者管理依赖、构建项目以及执行自动化测试。本项目工程"spring+maven"整合了这两者,以实现高效且易于维护的Java应用。 首先,让我们深入理解Spring框架的核心...
Maven 多模块工程是指一个项目中包含多个子模块,每个子模块都可以是一个独立的项目。创建多模块工程可以提高项目的灵活性和可维护性。下面是创建 Maven 多模块工程的步骤: 1. 建立父工程 首先,需要创建一个父...
然而,当项目引入多个库时,可能会遇到依赖冲突的问题。依赖冲突通常发生在两个或更多库使用相同类的不同版本时,Maven默认会选择最高版本的依赖,但这可能导致运行时错误或不兼容性。在本案例中,公司需要使用一个...
通过聚合,我们可以高效地管理多个子项目,通过继承,我们保持了配置的一致性。同时,"META-INF" 和 "WEB-INF" 目录揭示了项目的基本结构和 Web 应用的组织方式。这样的项目结构有助于提高开发效率和维护性。
在Java开发领域,Maven是一个强大的项目管理和自动化构建工具,它极大地简化了项目的构建、依赖管理以及文档生成等过程。本篇文章将详细讲解如何使用Maven创建父子结构工程,以便于更好地组织和管理大型项目。 首先...
通过 Maven 创建 Web 项目能够帮助开发者快速搭建开发环境,实现自动化构建、依赖管理和部署等功能。本文将详细介绍如何使用 Maven 在 Eclipse 中创建一个 Web 工程。 #### 二、准备工作 在开始之前,请确保已经...
本文将基于提供的文件信息,深入探讨如何使用Maven创建和管理包含多个子模块的Java工程项目。 #### Maven创建Java工程概述 在给定的描述中,提及了一个名为`mydemo`的web项目,该项目被细分为两个模块:`mydemo-...
SpringBoot简化了Spring框架的配置,使得开发者能够快速地开发出高性能的Java应用,而Maven则是一个项目管理和集成工具,帮助管理项目的构建、依赖和报告。本文将详细介绍如何使用SpringBoot和Maven构建一个Web项目...
在本项目中,我们关注的是"Maven聚合项目",这是一个特殊类型的Maven项目,它可以管理多个相关但独立的子项目。 **一、Maven聚合项目** Maven聚合项目(Aggregator Project)的主要目的是将多个相关的Maven项目...