我需要提及 Gradle 来理解并找到 Maven 的相同解决方案。
在 Gradle 中存在 GRADLE_HOME
和GRADLE_USER_HOME
(存储库)环境变量,对于 Maven,前者通过 M2_HOME
关于存储库我使用 settings.xml
文件来定义 <localRepository>
位置
对于 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_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
默认情况下)根据其计算机中的开发人员/用户。
最佳答案
对我来说,我使用的是从 spring.io
生成的 Spring Boot 样板代码。里面有mvnw.cmd
。通过将 MAVEN_USER_HOME
设置为自定义位置,运行 mvnw.cmd
会将 maven 下载到该自定义位置。
完成后,我仍然需要手动转到下载的 Maven 位置来配置 settings.xml
以指向 Maven 库存储库的自定义位置。
因此,遗憾的是,目前似乎需要 settings.xml
来配置存储库,而 MAVEN_USER_HOME
环境变量与存储库无关。
关于maven - 如何定义 Maven 的环境变量来定义本地存储库和包装器下载位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65204834/