【问题标题】:Maven not storing artifacts in the directory specified by localRepository in settings.xmlMaven 未将工件存储在 settings.xml 中 localRepository 指定的目录中
【发布时间】:2015-01-09 03:08:15
【问题描述】:

我正在使用 apache-maven-3.2.3

它位于 C:\java\apache-maven-3.2.3

settings.xml 文件位于 C:\java\apache-maven-3.2.3\conf\settings.xml

在该 settings.xml 文件中,我定义了以下内容:

<localRepository>C:/java/maven_repo</localRepository>

我定义了 windows 环境变量:

  • M2_HOME=C:\java\apache-maven-3.2.3
  • M2=%M2_HOME%\bin
  • PATH 环境变量包括 %M2%

我已将我的 STS (Eclipse) 配置为使用位于 C:\java\apache-maven-3.2.3 的外部 Maven 安装

My STS Maven-->Installations 显示全局设置为:C:\java\apache-maven-3.2.3\conf\settings.xml

我的 STS Maven-->用户设置显示来自合并和全局设置的本地存储库是:C:\java\maven_repo

C:/Users/[myuser]/.m2 没有 settings.xml

事实上,我确实删除了 C:/Users/[myuser]/.m2 处的整个 .m2 文件夹

然而,当我通过 STS 进行 Maven 更新时,它仍在将工件下载到默认的 .m2 目录:C:/Users/[myuser]/.m2/repository

我的 Eclipse 项目还显示 Maven 依赖项位于 C:/Users/[myuser]/.m2/repository

谁能告诉我为什么?我做错了什么?为什么不使用 c:/java/maven_repo 的本地存储库?

【问题讨论】:

  • 您能否解释一下为什么您在 Maven 安装中编辑了全局 settings.xml 而不是在 $USER_HOME/.m2 中定义一个?您尝试的不是定义本地 repo 位置的典型方式。
  • 我们正在标准化团队中每个人的开发环境,使用相同的文件夹结构等。所以我们有一个“定制的”Maven 安装 zip 文件,所有新团队成员只需将其解压缩到他们的 c:/Java 文件夹中,并且这个 Maven 安装有一个 settings.xml,它是预先配置到我们的环境中的。我们基本上希望所有内容都包含在同一个文件夹结构中,而不是分散在个人“用户”文件夹等中。

标签: eclipse maven maven-3


【解决方案1】:

我设法让它在 Eclipse 中工作的唯一方法是将 Window-->Preferences-->Maven-->User Settings 中的用户设置文件设置为与全局设置相同:C:\ java\apache-maven-3.2.3\conf\settings.xml

但我想将该字段留空应该从全局 settings.xml 中获取设置,但由于某种原因它没有。因此,如果我将该用户设置字段留空,则全局 settings.xml 中的 localRepositorty 将不适用。

但是,如果我在 Eclipse 之外运行 Maven,它会按预期工作。

【讨论】:

    【解决方案2】:

    通常,我会将默认的本地存储库文件夹从默认的 .m2 更改为另一个更有意义的名称,例如 ma​​ven-repo


    找到 {M2_HOME}\conf\setting.xml,将 localRepository 更新为其他内容。

      <settings>
          <!-- localRepository
           | The path to the local repository maven will use to store artifacts.
           |
           | Default: ~/.m2/repository
          <localRepository>/path/to/local/repo</localRepository>
          -->
    
        <localRepository>D:/maven_repo</localRepository>
    


    完成,您的新 Maven 本地存储库现已更改为 D:/maven_repo。

    【讨论】:

    • 这对我有用,这是来自 MKYONGs 教程
    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 2022-01-17
    • 2011-01-14
    • 1970-01-01
    相关资源
    最近更新 更多