配置 Maven

Maven 配置发生在 3 个级别:

  • 项目- 大多数静态配置发生在pom.xml
  • 安装- 这是为 Maven 安装添加一次的配置
  • 用户- 这是特定用户的特定配置

分离非常明确 - 项目定义了适用于项目的信息,无论是谁在构建它,而其他人都定义了当前环境的设置。

注意:安装和用户配置不能用于添加共享项目信息——例如,设置<organization><distributionManagement>公司范围。

为此,您应该让您的项目从公司范围的 parent 继承pom.xml

您可以在 中指定您的用户配置${user.home}/.m2/settings.xml。提供了对配置文件的完整参考。本节将展示如何进行一些常见的配置。请注意,该文件不是必需的 - 如果找不到,将使用默认值。

配置本地存储库

可以在用户配置中更改本地存储库的位置。默认值为${user.home}/.m2/repository/

<settings>
  ...
  <localRepository>/path/to/local/repo/</localRepository>
  ...
</settings>

注意:本地存储库必须是绝对路径。

配置代理

代理配置也可以在设置文件中指定。

有关更多信息,请参阅使用代理指南

配置并行工件分辨率

默认情况下,Maven 2.1.0+ 将一次下载多达 5 个工件(来自不同的组)。要更改线程池的大小,请使用-Dmaven.artifact.threads. 例如,一次只下载单个工件:

mvn -Dmaven.artifact.threads=1 verify

您可能希望永久设置此选项,在这种情况下您可以使用MAVEN_OPTS环境变量。例如:

export MAVEN_OPTS=-Dmaven.artifact.threads=3

安全和部署设置

要部署到的存储库在该<distributionManagement>部分的项目中定义。但是,您不能将您的用户名、密码或其他安全设置放在该项目中。出于这个原因,您应该将一个服务器定义添加到您自己的设置中,该设置与id项目中的部署存储库的设置相匹配。

此外,某些存储库可能需要授权才能下载,因此可以以server相同的方式在元素中指定相应的设置。

需要哪些设置取决于您部署到的存储库类型。从第一个版本开始,默认只支持 SCP 部署和文件部署,因此只需要以下 SCP 配置:

<settings>
  ...
  <servers>
    <server>
      <id>repo1</id>
      <username>repouser</username>
      <!-- other optional elements:
        <password>my_login_password</password>
        <privateKey>/path/to/identity</privateKey> (default is ~/.ssh/id_dsa)
        <passphrase>my_key_passphrase</passphrase>
      -->
    </server>
  ...
  </servers>
  ...
</settings>

要在这些部分中加密密码,请参阅加密设置

为存储库使用镜像

存储库可以在项目中声明,这意味着如果您有自己的自定义存储库,共享您的项目的人可以轻松获得开箱即用的正确设置。但是,您可能希望在不更改项目文件的情况下为特定存储库使用替代镜像。有关详细信息,请参阅镜像设置指南

简介

存储库配置也可以放入配置文件中。您可以拥有多个配置文件,其中一组处于活动状态,以便您可以轻松切换环境。在构建配置文件简介中阅读有关配置文件的更多信息。

可选配置

Maven 将适用于上述配置的大多数任务,但是如果您在单个项目之外有任何特定于环境的配置,那么您将需要配置设置。以下部分介绍了可用的内容。

设置

Maven 在 Maven 安装和/或用户主目录中有一个设置文件,用于配置环境细节,例如:

  • HTTP 代理服务器
  • 存储库管理器位置
  • 服务器身份验证和密码
  • 其他配置属性

有关此文件的信息,请参阅设置参考

安全

从 Maven 2.1.0+ 开始,您可以在设置文件中加密密码,但是您必须首先配置主密码。有关服务器密码和主密码的更多信息,请参阅密码加密指南

工具链

从 Maven 2.0.9+ 开始,您可以使用独立于运行 Maven 的特定版本的 JDK 构建项目。有关更多信息,请参阅使用工具链指南