【发布时间】:2013-02-09 15:54:46
【问题描述】:
我正在使用maven-release-plugin 发布一些工件。在release:perform 目标期间,我想运行一个内联 Groovy 脚本,该脚本使用我的 SCM 凭据来执行一些任务。
这是我的pom.xmlsn-p
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.4</version>
<configuration>
<goals>
clean
deploy
org.codehaus.gmaven:gmaven-plugin:execute
</goals>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>default-cli</id>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
log.info "Username: ${project.properties.username} account"
</source>
</configuration>
</execution>
</executions>
</plugin>
...
我按如下方式调用 Maven
mvn -B release:prepare release:perform -Dusername=foo -Dpassword=bar
我得到以下输出:
Username: null account
我尝试查看官方GMaven 页面,但似乎缺少一些sn-ps...
有什么想法吗?
编辑
我通过在 goals 部分传递凭据完成
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.4</version>
<configuration>
<goals>
clean
deploy
org.codehaus.gmaven:gmaven-plugin:execute -Dusername=${username} -Dpassword=${password}
</goals>
</configuration>
</plugin>
...
命令行是一样的:
mvn -B release:prepare release:perform -Dusername=foo -Dpassword=bar
正如@khmarbaise 所说,Maven 的发布周期似乎是分叉的。我不确定它是否将所有命令行参数传递给分叉进程。所以这样做就像我在强制 CLI 参数的前进。
【问题讨论】:
-
这一定与您拥有的其他一些配置有关,因为当我使用与您显示的相同的语法时,它对我来说很好。
标签: maven groovy maven-release-plugin