Maven `project.basedir` 在 distributionManagement 中不受尊重

Maven `project.basedir` not respected in distributionManagement

我有一个小项目,没有nexus或类似的服务器,所以我想在本地发布项目,然后手动上传jar到我的网络服务器。 为此,我添加到我的 pom:

   <distributionManagement>
        <repository>
            <id>internal-repository</id>
            <name>Internal Repository Releases</name>
            <url>file://${project.basedir}/releases</url>
        </repository>
    </distributionManagement>

并且我希望在项目的根文件夹中有一个 releases,里面有 jar,但它似乎被放在了 target/checkout/ 文件夹中..

该项目位于 /Users/pgomez/sources/pweb/ 和 运行 mvn clean release:prepare release:perform -e 之后,在日志中我可以看到:

[INFO] Uploaded: file:///Users/pgomez/sources/pweb/target/checkout/releases/com/pweb/pweb/0.16/pweb-0.16.jar (2.0 MB at 14 MB/s)

为什么会这样?我错过了什么吗? 我原本打算在:

/Users/pgomez/sources/pweb/releases/com/pweb/pweb/0.16/pweb-0.16.jar

另外,这是正确的做法吗?我应该直接从本地 ~/.m2/ 文件夹中获取 jar 吗?

当您 运行 Maven 发布插件时,它会在 target/checkout 中对您的项目进行完整签出,并根据此签出构建发布。在此构建期间,${project.basedir}target.

中的这个 checkout 目录

如果你想 运行 Maven 发布插件而不需要 Nexus/Artifactory,我会使用你系统上的一个固定目录作为“存储库”,而不是与项目目录相关的目录。