一 工程分类
1.POM工厂
用在父级工程或聚合工程中。用来做 jar 包的版本控制。常见 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>groupName</groupId>
<!-- 工程名称 -->
<artifactId>artifactName</artifactId>
<!-- 版本 -->
<version>1.0</version>
<!-- 工程类型 -->
<packaging>pom</packaging>
<!-- 定义一个 properties 配置信息。 定义配置信息,为了统一管理。 -->
<properties>
<!-- 如果需要使用 properties 配置信息内容。 可以通过表达式${junit.version}访问
4.12 -->
<junit.version>4.12</junit.version>
</properties>
<!-- 定义当前工程都管理了什么 jar,都是什么版本。并非依赖。 -->
<dependencyManagement>
<dependencies>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<!-- 有效范围, 作用域
compile - 编译中有效
runtime - 运行中有效
system - 全部中有效[默认]
provided - 当前工程中有效.
test - 只在测试有效 。
-->
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 定义当前工程依赖了什么 jar 包,版本是什么。 -->
<dependencies>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<!-- 有效范围, 作用域。 -->
<scope>test</scope>
</dependency>
</dependencies>
</project>
2. jar工厂
将会打包成 jar 用作 jar 包使用。即常见的本地工程 - Java Project。常见 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>groupName</groupId> <artifactId>artifactName</artifactId> <version>1.0</version> <!-- jar 工程为默认工程类型,可以省略配置 --> <!-- <packaging>jar</packaging> --> </project>
3.war工厂
将会打包成 war,发布在服务器上的工程。如网站或服务。即常见的网络工程 - Dynamic Web Project。war 工程默认没有 WEB-INF 目录及 web.xml 配置文件,IDE 通常会显示工程错 误,提供完整工程结构可以解决。常见 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>groupName</groupId> <artifactId>artifactName</artifactId> <version>1.0</version> <packaging>war</packaging> </project>
二 工厂关系
1.依赖 即 A 工程开发或运行过程中需要 B 工程提供支持,则代表 A 工程依赖 B 工程。在这种 情况下,需要在 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>localPrjectGroupName</groupId> <!-- 本工程名称 --> <artifactId>localPrjectArtifactName</artifactId> <!-- 本工程版本 --> <version>localPrjectVersionNo</version> <!-- 本工程类型 --> <packaging>packagingTypeName</packaging> <!-- 依赖信息定义 --> <dependencies> <!-- 定义一个具体的依赖 --> <dependency> <!-- 依赖的工程所在组名 --> <groupId>groupName</groupId> <!-- 依赖的工程名 --> <artifactId>artifactName</artifactId> <!-- 依赖的工程版本 --> <version>versionNo</version> <!-- 依赖的工程有效范围,其可选值有: compile - 编译中有效 runtime - 运行中有效 system - 全部中有效[默认] provided - 当前工程中有效. test - 只在测试有效 --> <scope>system</scope> </dependency> </dependencies> </project>
2.继承 如果 A 工程继承 B 工程,则代表 A 工程默认依赖 B 工程依赖的所有资源,且可以应用 B 工程中定义的所有资源信息。被继承的工程(B 工程)只能是 POM 工程。具体工程 pom.xml 文件配置如下:
2.1父工程
<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>parentGroup</groupId> <artifactId>parentProject</artifactId> <version>1.0</version> <packaging>pom</packaging> </project>
2.2子工程
<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>parentGroup</groupId> <artifactId>parentProject</artifactId> <version>1.0</version> </parent> <!-- 若子工程所在组及版本与父工程一致,可以省略 groupId 和 version 标签配置 --> <groupId>childGroup</groupId> <artifactId>childProject</artifactId> <version>1.0</version> </project>
3聚合工程
当我们开发的工程拥有 2 个以上模块的时候,每个模块都是一个独立的功能集合。比如 某大学系统中拥有搜索平台,学习平台,考试平台等。开发的时候每个平台都可以独立编译, 测试,运行。这个时候我们就需要一个聚合工程。 在创建聚合工程的过程中,总的工程必须是一个 POM 工程(Maven Project),各子模块 可以是任意类型模块(Maven Module)。所有聚合工程和聚合模块必须处于同一个组 (groupId)中,且聚合工程可以嵌套。 具体 pom.xml 文件配置如下:
3.1总工程配置
<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>superGroup</groupId> <artifactId>superProject</artifactId> <version>1.0</version> <packaging>pom</packaging> <!-- 当前聚合工程中的子模块定义,引用的是子模块的 artifactId。 --> <modules> <module>subProject1</module> <module>subProject2</module> </modules> </project>
3.2子模块1配置
<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>superGroup</groupId> <artifactId>superProject</artifactId> <version>1.0</version> </parent> <artifactId>subProject1</artifactId> </project>
子模块2配置
<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>superGroup</groupId> <artifactId>superProject</artifactId> <version>1.0</version> </parent> <artifactId>subProject2</artifactId> </project>
来源:https://www.cnblogs.com/sxrtb/p/12189113.html