【发布时间】:2020-12-08 18:35:27
【问题描述】:
我需要提及 Gradle 才能理解并找到适用于 Maven 的相同解决方案。
在 Gradle 中存在 GRADLE_HOME 和 GRADLE_USER_HOME(存储库)环境变量,对于 Maven,前者通过 M2_HOME 和关于 存储库 我使用 @ 987654324@ 文件来定义<localRepository> 位置
对于 Maven 和 Gradle,我可以放心地定义软件的安装位置,例如除 .m2 和 .gradle 之外的其他位置到辅助磁盘,甚至可以自定义目录名称。关于存储库位置的相同目标,都用于辅助磁盘(通过settings.xml 文件记住 Maven)
注意:因此.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_USER_HOME/wrapper/dists
因此观察GRADLE_USER_HOME(自定义位置 - 否则默认为.gradle)是如何定义的:
- 本地存储库
- 通过包装器安装下载的 Gradle 的基本路径
目标:如何为 Maven 完成相同的行为?我的意思是,Maven 应该自动识别的本地存储库的 环境变量 名称(类似于MAVEN_USER_HOME)应该是什么? (不使用settings.xml 文件)。它的目的是根据配置的 环境变量 名称安装任何 Maven 包装器(自定义位置 - 否则默认为 .m2),当然也定义了本地存储库。
因此:我需要 maven-wrapper.properties 使用类似 MAVEN_USER_HOME(自定义位置 - 否则默认为 .m2)根据其机器中的开发人员/用户。
【问题讨论】:
-
不在用户目录中使用默认位置
.m2有什么好处? -
有一个自定义的位置,如果主磁盘空间也用完了,本地存储库和包装器分布可能从一开始就放在其他地方(大容量的pendrive)。
-
由于 IO 是构建的主要因素,我会将本地存储库放在 SSD 上。
-
同意,也可以考虑使用 SSD,关键是定义与主磁盘不同的位置。
-
我的查询和乔丹一模一样。我觉得我们应该直截了当地回答,乔丹要求的能不能做,而不是问他的优势,或者他应该把本地存储库放在哪里。因为如果他问这个问题,他肯定有自己的理由不使用默认目录。即使我们说服他更改默认位置没有任何优势,但至少从学习的角度来看,在使用环境变量控制本地存储库位置方面,Maven 是否有这样的限制仍然是件好事。
标签: maven maven-3 maven-wrapper