我目前正在尝试为我们的构建服务器配置Maven版本插件。
为此,我尝试通过命令行设置<scm><developerConnection>
。我读过
project.scm.developerConnection
是命令行属性(https://maven.apache.org/guides/mini/guide-releasing.html)。我尝试设置它,但似乎没有效果。当我开始构建时,它使用一个失败的构造URL(父pom url + artifactId)。
我看了看插件的源代码,但是没有找到上面提到的命令行属性。
有人可以阐明这一点吗?
答案 0 :(得分:0)
运行mvn release:prepare
时,Maven会分叉。命令行中提供的参数将传递给初始Maven调用(您/构建服务器运行的调用),而不传递给fork。
要将args传递到发布插件,请提供arguments,如下所示:
mvn release:prepare -Darguments="-Dproject.scm.developerConnection=..." ...
根据我要执行的操作,有时必须在两个位置进行指定,因此原始进程和派生进程都将获得args:
mvn release:prepare -DsomeArg=val -Darguments="-DsomeArg=val" ...
release plugin FAQ中的第一个示例显示了后者有用的示例。
----更新----
我在maven-scm-plugin code中找到了该物业。
也许project.scm.developerConnection
是只读的?尝试设置scmDeveloperConnection
,因为它被列为属性名称。
答案 1 :(得分:0)
看来您不能直接从命令行传递此属性。参见:
https://issues.apache.org/jira/browse/MRELEASE-707
但是您应该通过在pom.xml中的自定义属性中指定它来使其工作:
<properties>
<my.developer.connection />
</properties>
<scm>
<developerConnection>${my.developer.connection}</developerConnection>
<tag>HEAD</tag>
</scm>
例如,运行Maven:
-Dmy.developer.connection=scm:git:ssh://user@host/repo.git
在生成不应包含有关公司内部信息的公共发行版时,我使用这种方法来保持pom.xml的干净。