【问题标题】:Maven - alternative .m2 directoryMaven - 替代 .m2 目录
【发布时间】:2013-05-11 13:28:36
【问题描述】:

如何全局更改maven的.m2目录的位置?

Maven 使用${user.home}/.m2 进行设置、存储库缓存等。

我知道我可以:

  • 指向存储库缓存的不同目录(通过更改我的全局配置文件中的localRepository 属性),但不指向其他任何目录(例如settings.xml)。
  • 使用-s CLI 选项,但我每次使用 maven 时都必须这样做。

但理想情况下,我想要一个全球解决方案。直觉上这应该是可能的..

我想这样做是因为我的公司将我的 ${user.home} 设置为容易出现网络问题的共享驱动器。

【问题讨论】:

    标签: maven


    【解决方案1】:

    使用MAVEN_OPTS 环境变量设置存储库的位置。在你的shell启动中设置,不用每次都放在命令行中。

    export MAVEN_OPTS="-Dmaven.repo.local=/path/to/repository"
    

    您说过要更改settings.xml 文件的.m2 以及repository 目录。您要设置 M2_HOME 环境变量。 Maven settings documentation 表示它控制 Maven 查找 settings.xml 的位置。从那里,您可以控制存储库位置等。

    【讨论】:

    • 这是一个很好的解决方案。大多数时候我只是想将我的存储库指向一个有足够空间的磁盘。也就是说,是否(甚至?)可以使用MAVEN_OPTS 指定“settings.xml”文件?
    • M2_HOME 以前需要设置Maven的安装目录。这不再需要和劝阻。关于 M2_HOME 的答案中的信息完全错误,链接的文档根本没有说明您的回答。您的解决方案不会更改有关设置文件位置的任何内容,因此答案实际上是错误的。
    • 这是最好的解决方案,但路径必须是绝对的。
    【解决方案2】:

    另一个用例,但如果您使用的是 Jenkins,您可以设置 Use private Maven repository 标志,Jenkins 会为您完成。

    选中此选项后,Jenkins 将告诉 Maven 使用 $WORKSPACE/.repository 作为本地 Maven 存储库。这意味着每个作业都将获得自己独立的 Maven 存储库。

    【讨论】:

      【解决方案3】:

      你需要找到你的 settings.xml 文件,然后编辑<localRepository>/path/to/local/repo</localRepository>

      【讨论】:

        【解决方案4】:

        最好的选择是在使用 Maven 指向计算机上的本地文件夹之前,先在 user.home 中创建 .m2 作为符号链接。

        否则,您可以为 mvn 创建一个名为 mymvn(或 m3 或其他)的 shell 别名,该别名传入 -s 以及本地 repo 位置。

        【讨论】:

        • 是的,我认为这是最好的选择。 Unf 我无法创建符号链接( windows :( )但别名(以批处理文件的形式)暂时可以使用。
        • @RoyTruelove 在 Windows 上,maven 正在从 .cmd 文件(可以用记事本打开)执行,您也可以更改为包含 -s 而不是别名。它位于<maven install location>\bin\mvn.cmd
        猜你喜欢
        • 1970-01-01
        • 2016-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-18
        • 1970-01-01
        • 2019-02-06
        • 2011-11-02
        相关资源
        最近更新 更多