项目的pom.xml
Project Coordinates
<groupId>
:定义项目所属的组织或者团队的唯一基础名称。例如:com.example
<artifactId>
:项目的唯一标识符,通常是项目的名称。例如:hello-world
<version>
:项目当前的版本号。例如:1.0.0-SNAPSHOT
<packaging>
:定义项目的打包方式,比如jar
,war
等。默认是jar
。例如:<packaging>jar</packaging>
Repository Definition
<repositories>
:项目所使用的远程仓库列表。<repository>
:定义一个远程仓库。<id>
:仓库的唯一标识符。<name>
:仓库的名称。<url>
:仓库的URL地址。<layout>
:仓库的布局,默认为default
。<snapshots>
:定义如何处理snapshot版本。<enabled>
:是否启用snapshot版本。
Dependency Management
<dependencies>
:项目的依赖列表。<dependency>
:定义一个依赖。<groupId>
、<artifactId>
、<version>
:定义依赖的坐标。<optional>
:是否是可选依赖,默认为false
。<exclusions>
:排除某些传递性依赖。<exclusion>
:定义需要排除的传递性依赖。
Build Configuration
<build>
:定义项目的构建配置。<plugins>
:项目构建时使用的插件列表。<plugin>
:定义一个插件。<groupId>
、<artifactId>
、<version>
:定义插件的坐标。<configuration>
:插件的配置信息。<executions>
:插件的执行配置。<execution>
:定义一个执行阶段。<phase>
:定义在什么阶段执行。
Advanced Configuration
-
<properties>
:定义Maven项目中用到的属性。 -
<profiles>
:项目构建的特定设置集。<profile>
:定义一个构建配置文件。
-
<modules>
:定义项目模块化,用于多模块项目。<module>
:定义一个子模块。
-
<parent>
:定义父项目的坐标。<relativePath>
:相对于当前项目的路径,用来寻找父项目。
-
<dependencyManagement>
:用于集中依赖版本管理的地方。 -
<distributionManagement>
:配置项目的分发管理,如部署到仓库的信息。
示例
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId> <!-- 组织名 -->
<artifactId>hello-world</artifactId> <!-- 项目名 -->
<version>1.0.0</version> <!-- 版本号 -->
<dependencies>
<dependency>
<groupId>org.springframework</groupId> <!-- 依赖的组织名 -->
<artifactId>spring-context</artifactId> <!-- 依赖的项目名 -->
<version>5.2.3.RELEASE</version> <!-- 依赖的版本号 -->
</dependency>
</dependencies>
</project>
Maven的全局配置文件settings.xml
Local Repository
<localRepository>
:定义了Maven本地仓库的位置。如果没有配置,默认在用户的home目录下的.m2
目录中。例如:<localRepository>/path/to/local/repo</localRepository>
Mirror Settings
<mirrors>
:是一个容器,包含了一个或多个<mirror>
元素。<mirror>
:定义了一个镜像仓库,用于提供另一个远程仓库的镜像,提高下载速度或者为了内网访问外网资源。<id>
:镜像仓库的唯一标识符。<mirrorOf>
:指明这个镜像是为了哪个或哪些仓库的镜像。*
表示所有远程仓库。<url>
:镜像仓库的URL地址。<layout>
:仓库的布局(可选)。
示例:
<mirrors> <mirror> <id>example-mirror</id> <mirrorOf>*</mirrorOf> <url>http://mirror.example.com/maven2</url> </mirror> </mirrors>
Server Settings
<servers>
:是一个容器,包含了一个或多个<server>
元素,用于定义访问仓库时的认证信息。<server>
:定义了对特定仓库的身份验证信息。<id>
:服务器的唯一标识符,和<repository>
或<pluginRepository>
中的<id>
对应。<username>
:登陆服务器的用户名。<password>
:登陆服务器的密码。
示例:
<servers> <server> <id>release-repo</id> <username>user</username> <password>password</password> </server> </servers>
Snapshot Repository
-
<snapshotRepository>
:用于定义分发管理中快照版本仓库的特定信息。它通常在distributionManagement
中指定,用于指示Maven如何部署快照版本到远程仓库。<id>
:仓库的标识符。<url>
:仓库的URL地址。
示例:
<distributionManagement> <snapshotRepository> <id>example-snapshots</id> <url>http://snapshots.example.com/maven2</url> </snapshotRepository> </distributionManagement>