maven下载包文件到当前目录

mvn download package files into current directory

有人能帮忙解释为什么 mvn 命令总是将依赖文件下载到当前目录吗?它应该存储到 M2_HOME 对吧?

我试过了

mvn package
mvn help:system

$M2_HOME 已正确设置

C:\> mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: C:\Users\Documents\bin\apache-maven-3.6.3\bin\..
Java version: 1.8.0_252, vendor: Azul Systems, Inc., runtime: C:\Users\Documents\bin\Zulu\zulu-8\jre
Default locale: en_SG, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

M2_HOME 通常设置为环境变量。您可以执行以下操作来检查其值。

  echo $M2_HOME

现在看来是 Windows,我认为正确的命令是:

  echo %M2_HOME%

这些包通常在 %M2_HOME%/repository

下可用

@khmarbaise,谢谢你的回复。我尝试听从您的建议,但问题仍然存在。

首先我注意到我的 $HOME 变量没有设置,但是 $JAVA_HOME 是好的

所以我设置了 $HOME 变量并重新启动了命令提示符,但结果仍然相同 - 'mvn package' 仍然将包下载到当前工作目录而不是 $HOME/.m2/repository.

其次我检查了 $HOME/.m2/settings.xml 文件。您是否看到以下任何问题?

<settings
    xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository/>
    <interactiveMode/>
    <usePluginRegistry/>
    <offline/>
    <pluginGroups/>
    <servers/>
    <mirrors>
        <mirror>
            <id>xxx-maven</id>
            <mirrorOf>central</mirrorOf>
            <name>xxx maven repo</name>            <url>https://xxx/nexus/repository/repo/</url>
        </mirror>
    </mirrors>
    <profiles/>
    <activeProfiles/>
</settings>