Maven 配置指南

目录

一、配置本地存储库

[二、配置并行Artifact 解析](#二、配置并行Artifact 解析)

三、安全和部署设置

四、将镜像用于存储库

五、Profiles

六、可选配置

七、Settings

八、安全性

九、工具链


Maven配置发生在3个级别:

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

分离是非常清楚的------项目定义应用于项目的信息,无论是谁构建它,而其他两个项目都定义当前环境的设置。

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

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

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

一、配置本地存储库

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

复制代码
<settings>
  ...
  <localRepository>/path/to/local/repo/</localRepository>
  ...
</settings>

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

二、配置并行Artifact 解析

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

复制代码
mvn -Dmaven.artifact.threads=1 verify

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

复制代码
export MAVEN_OPTS=-Dmaven.artifact.threads=3

三、安全和部署设置

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

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

需要哪些设置取决于要部署到的存储库的类型。从第一个版本开始,默认情况下仅支持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>

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

四、将镜像用于存储库

存储库可以在项目中声明,这意味着如果您有自己的自定义存储库,那么共享您的项目的存储库很容易获得现成的正确设置。然而,您可能希望在不更改项目文件的情况下为特定存储库使用备用镜像。有关更多详细信息,请参阅镜像设置指南。

五、Profiles

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

六、可选配置

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

七、Settings

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

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

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

八、安全性

您可以在设置文件中加密密码。然而,您必须首先配置主密码。有关服务器密码和主密码的更多信息,请参阅密码加密指南。

九、工具链

您可以使用特定版本的JDK构建项目,而不依赖于Maven运行的JDK。有关详细信息,请参见《使用工具链指南》。

相关推荐
冬夜戏雪21 分钟前
【java学习日记】【2025.12.7】【7/60】
java·开发语言·学习
CC.GG30 分钟前
【C++】二叉搜索树
java·c++·redis
一过菜只因31 分钟前
MySql Jdbc
android·数据库·mysql
音视频牛哥2 小时前
Android音视频开发:基于 Camera2 API 实现RTMP推流、RTSP服务与录像一体化方案
android·音视频·安卓camera2推流·安卓camera2推送rtmp·安卓camera2 rtsp·安卓camera2录制mp4·安卓实现ipc摄像头
2501_937145412 小时前
2025 IPTV 源码优化版:稳定兼容 + 智能升级
android·源码·电视盒子·源代码管理·机顶盒
JIngJaneIL2 小时前
基于Java非遗传承文化管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
南部余额2 小时前
踩坑与解惑:深入理解 SpringBoot 自动配置原理与配置排除机制
java·spring boot·自动配置原理·import
木鹅.3 小时前
LangChain4j
java
永远都不秃头的程序员(互关)4 小时前
Java核心技术精要:高效实践指南
java·开发语言·性能优化
CoderYanger4 小时前
动态规划算法-子序列问题(数组中不连续的一段):28.摆动序列
java·算法·leetcode·动态规划·1024程序员节