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,我会使用你系统上的一个固定目录作为“存储库”,而不是与项目目录相关的目录。
我有一个小项目,没有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,我会使用你系统上的一个固定目录作为“存储库”,而不是与项目目录相关的目录。