我在此处添加此内容,因为一般行为如 Marcel 答案中所述,但特别是对于与 scm 一起使用的示例,这可能无法正常工作。
在 maven 3.3.1(和 3.3.3)中没有按预期工作。
家长:
<properties>
<git.project.name>uumds-commons</git.project.name>
<git.scmUrl>https://github.com/raisercostin/${git.project.name}.git</git.scmUrl>
</properties>
<scm>
<connection>scm:git:${git.scmUrl}</connection>
<developerConnection>scm:git:${git.scmUrl}</developerConnection>
<tag>HEAD</tag>
</scm>
孩子:
<properties>
<git.project.name>uumds-pdp</git.project.name>
</properties>
在 child 中的有效 pom (mvn help:effective-pom) 中变为:
<properties>
<git.project.name>uumds-pdp</git.project.name>
<git.scmUrl>https://github.com/raisercostin/uumds-pdp.git</git.scmUrl>
</properties>
<scm>
<connection>scm:git:https://github.com/raisercostin/uumds-pdp.git/uumds-pdp</connection>
<developerConnection>scm:git:https://github.com/raisercostin/uumds-pdp.git/uumds-pdp</developerConnection>
<tag>uumds-parent-0.9</tag>
</scm>
所以看起来如果 scm 没有在 child 中定义,它会自动将项目名称添加到连接中。
更新: maven 似乎有一些自动更改 url: ${project.artifactId} 在父 pom.xml 中解决了奇怪的问题和https://issues.apache.org/jira/browse/MNG-2290
吉拉状态
Maven 有相当多的元素,其中 URL 或路径会为子 POM 自动修改(我目前知道的那些):
url
scm/connection
scm/developerConnection
scm/url
distributionManagement/site/url