如何定义Maven';s环境变量来定义本地存储库和包装器下载位置?

如何定义Maven';s环境变量来定义本地存储库和包装器下载位置?,maven,maven-3,maven-wrapper,Maven,Maven 3,Maven Wrapper,我需要提到Gradle来理解并为Maven找到同样的解决方案 在Gradle中存在Gradle\u HOME和Gradle\u USER\u HOME(存储库)环境变量,对于前者,通过M2\u HOME和关于存储库,我使用设置.xml文件定义位置 对于Maven和Gradle,我可以和平地定义安装软件的位置,例如,除了辅助磁盘的.m2和.Gradle之外的其他位置,甚至使用自定义的目录名。关于存储库位置的目标是相同的,都是针对辅助磁盘(记住Maven通过settings.xml文件) 注意:因此

我需要提到Gradle来理解并为Maven找到同样的解决方案

在Gradle中存在
Gradle\u HOME
Gradle\u USER\u HOME
(存储库)环境变量,对于前者,通过
M2\u HOME
和关于存储库,我使用
设置.xml
文件定义
位置

对于Maven和Gradle,我可以和平地定义安装软件的位置,例如,除了辅助磁盘的
.m2
.Gradle
之外的其他位置,甚至使用自定义的目录名。关于存储库位置的目标是相同的,都是针对辅助磁盘(记住Maven通过
settings.xml
文件)

注意:因此,
.gradle
.m2
为空,不使用

在Gradle中,关于创建的包装,
Gradle wrapper.properties
文件具有:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-#.#.#-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
最后的路径是:
GRADLE\u USER\u HOME/wrapper/dists
因此,请观察如何使用
GRADLE\u USER\u HOME
(自定义位置-否则默认情况下为
.GRADLE
)来定义:

  • 本地存储库
  • 通过包装器安装下载的Gradle的基本路径
目标:如何为Maven实现同样的行为?我的意思是,对于MAVEN应该自动识别的本地存储库,环境变量名(比如
MAVEN\u USER\u HOME
)应该是什么?(不使用
settings.xml
文件)。它的目的是根据配置的环境变量名安装任何Maven包装(自定义位置-默认情况下为
.m2
),当然也定义了本地存储库


因此:我需要
maven wrapper.properties
,使用类似
maven\u USER\u HOME
(自定义位置-默认情况下为
.m2
)的东西,根据其机器中的开发人员/用户。

对我来说,我使用的是从
spring.io
生成的spring boot样板代码。内置
mvnw.cmd
。通过将
MAVEN\u USER\u HOME
设置为自定义位置,运行
mvnw.cmd
将MAVEN下载到该自定义位置

完成后,我仍然需要手动转到下载的maven位置,配置
settings.xml
,以指向maven库repo的自定义位置


因此,遗憾的是,目前似乎需要
设置.xml
来配置repo,而
MAVEN\u USER\u HOME
环境变量与repo无关。

不使用用户目录中的默认位置
.m2
有什么好处?有一个自定义位置,而且,主磁盘也不在空间中的情况下,从一开始就可能有本地存储库和包装器分布(具有高容量的PixRIE)。IO是构建的主要因素,我将把本地存储库放在SSD上。同意,也考虑SSD,关键是定义一个与主磁盘不同的位置。我有与Jordan完全相同的查询。我认为,我们应该直截了当地回答这个问题,不管乔丹所要求的是可以做到还是不能做到,而不是问他有什么好处,或者他应该把当地的知识库放在哪里。因为如果他问这个问题,他肯定有自己的理由不使用默认目录。即使我们让他相信更改默认位置没有好处,但至少从学习的角度来看,知道Maven在使用环境变量控制本地存储库位置方面是否有这样的限制还是很好的。您能分享添加的部分源代码吗?如果您能添加更详细的步骤说明,将非常有价值