前言
本章重点知识:掌握setting.xml配置文件以及pom.xml配置文件
setting.xml文件用于配置Maven的运行环境,包括本地仓库的位置、镜像仓库的配置、认证信息等。以下是setting.xml文件的详细说明:
:指定本地仓库的位置,Maven会在这个目录下查找依赖项。
:定义镜像仓库的配置,包括镜像仓库的ID、URL和镜像范围。通过配置多个``元素,可以实现多个镜像仓库的配置。
:用于配置认证信息,包括服务器ID、username和password。在从远程仓库下载依赖项时,需要使用这些认证信息进行身份验证。
:用于定义一个或多个配置文件,可以包含多个元素,每个
元素对应一个特定的配置文件。通过在命令行中传递不同的-P
参数,可以激活不同的配置文件。
:用于指定默认激活的配置文件。如果没有传递任何-P
参数,Maven会使用这里指定的配置文件。
:用于指定额外的插件组,可以通过-pluginGroup
参数来指定要使用的插件组。
:用于配置代理服务器的设置,包括代理服务器的ID、地址和端口等信息。如果需要使用代理服务器下载依赖项,需要在这里进行配置。Maven 的 settings.xml
文件是用于配置 Maven 运行环境和构建行为的配置文件。
标签,这是配置私有仓库的地方。标签中添加你的私有仓库配置。每个仓库需要一个
标签,其中包含仓库的 ID、URL 和其它相关信息。例如: <localRepository>/path/to/local/repolocalRepository>
标签,这是配置私有仓库的地方。pluginGroup
标签中添加你的私有插件组。例如: <pluginGroups>
<pluginGroup>com.your.pluginspluginGroup>
pluginGroups>
标签,这是配置私有仓库的地方。server
标签中添加你的私有仓库账户、密码。每个server标签,其中包含 ID、username和password相关信息。例如:
标签,这是配置私有仓库的地方。repository
标签中添加你的私有仓库配置。每个私有仓库服务包含ID、URL 相关信息。例如:<repositories>
<repository>
<id>my-private-repoid>
<url>http://my-private-repo.example.com/repo/url>
repository>
repositories>
标签,配置多个镜像。mirror
标签中添加你的镜像配置。每个镜像需要一个 mirror
标签,其中包含仓库的 ID、name、URL、mirrorOf 相关信息。例如:<mirrors>
<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/groups/public/url>
<mirrorOf>centralmirrorOf>
mirror>
mirrors>
标签properties
标签中添加你全局属性<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<maven.compiler.source>1.8maven.compiler.source>
<maven.compiler.target>1.8maven.compiler.target>
properties>
pom.xml文件是Maven项目的核心配置文件,用于定义项目的构建信息、依赖项、插件等。以下是pom.xml文件的详细说明:
:指定项目的唯一标识符、名称、版本号等信息。
:指定项目对象的模型版本号,通常为4.0.0。
:指定项目的组ID,通常为公司或组织的唯一标识符。
:指定项目的Artifact ID,通常为项目的唯一标识符。
:指定项目的版本号。
:指定项目的打包方式,如jar、war等。
:指定项目的名称。
:指定项目的URL地址。
:用于定义项目相关的属性,可以在这里配置一些自定义的属性。
:用于定义项目的依赖项,可以在这里添加多个``元素来指定具体的依赖项。每个依赖项包括groupId、artifactId和version等信息。
:用于定义项目使用的存储库,可以在这里添加多个``元素来指定具体的存储库信息。
:用于定义项目的构建配置,包括编译、打包、测试等过程。可以在这里配置一些插件、构建脚本等信息。
:用于定义项目报告的生成方式,包括文档生成、测试报告等。可以在这里配置一些插件、报告模板等信息。和
元素会继承父模块的配置,其他元素不会继承。如果子模块中定义了相同的元素,会覆盖父模块中的配置。<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.8.1version>
<configuration>
<source>1.8source>
<target>1.8target>
configuration>
plugin>
plugins>
build>
<build>
<resources>
<resource>
<directory>src/main/resourcesdirectory>
<filtering>truefiltering>
resource>
resources>
build>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-jar-pluginartifactId>
<version>3.2.0version>
<executions>
<execution>
<id>make-a-jarid>
<phase>compilephase>
<goals>
<goal>jargoal>
goals>
execution>
executions>
plugin>
plugins>
build>
<dependencies>
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>28.2-jreversion>
dependency>
<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-lang3artifactId>
<version>3.12.0version>
dependency>
dependencies>
dependencyManagement
标签来定义统一版本管理 。。在 标签内部,可以添加
标签来指定项目所依赖的外部库、组件或服务。每个依赖项由一个或多个 标签组成,每个
标签包含以下属性:
groupId
:依赖项的组织ID,用于唯一标识依赖项的提供者。artifactId
:依赖项的唯一ID,用于唯一标识依赖项。version
:依赖项的版本号。通过在 dependencyManagement
标签中指定依赖项的版本号,可以确保项目中所有依赖项的版本号都是一致的,避免了因版本号不一致而引起的冲突问题。
<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.0modelVersion>
<groupId>com.examplegroupId>
<artifactId>my-projectartifactId>
<version>1.0-SNAPSHOTversion>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guavagroupId>
<artifactId>guavaartifactId>
<version>28.2-jreversion>
dependency>
<dependency>
<groupId>org.apache.commonsgroupId>
<artifactId>commons-lang3artifactId>
<version>3.12.0version>
dependency>
dependencies>
dependencyManagement>
project>
repositories
标签。添加一个repository
标签,用于指定中央仓库的URL。以下是一个示例:<repositories>
<repository>
<id>centralid>
<name>Central Repositoryname>
<url>https://repo.maven.apache.org/maven2url>
repository>
repositories>
pom.xml是Maven项目的核心配置文件,用于定义项目的构建信息、依赖项、插件等。它包含了项目的构建配置和依赖关系,是每个Maven项目的必需文件。
setting.xml是Maven的全局配置文件,用于设置Maven运行的环境和参数。它包含了Maven的运行配置,如本地仓库的位置、镜像仓库的配置、代理服务器的设置等。
当pom.xml和setting.xml中的配置发生冲突时,通常来说,pom.xml中的配置具有更高的优先级。这是因为pom.xml是针对特定项目的配置文件,它包含了项目的具体构建信息和依赖关系,而这些信息是在项目构建过程中直接使用的。而setting.xml中的配置是全局性的,它对所有的Maven项目都生效,但不会影响具体的项目构建过程。
国内有一些Maven镜像库可供使用,其中比较知名的包括:
这些镜像库通常会提供与中央仓库类似的存储库服务,包括对Maven依赖项的存储和管理。使用国内镜像库可以加快依赖项的下载速度,同时也可以避免在国际网络环境下可能遇到的问题,如网络延迟、连接不稳定等。
要使用国内镜像库,需要在pom.xml文件中进行相应的配置。一种方法是配置镜像仓库的地址,将地址替换为国内镜像库的地址。另一种方法是配置Maven设置文件(settings.xml),在其中添加相应的镜像仓库配置。
需要注意的是,使用国内镜像库时需要注意其提供的依赖项是否与项目需求相符合,同时也要注意其更新频率和稳定性等方面的问题。