我正在使用maven-发布插件发布一些工件。在实现release:perform目标期间,我希望运行一个内联Groovy脚本,它使用我的SCM凭据来执行一些任务。
这是我的pom.xml片段
...
<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页面,但似乎缺少了一些片段.
有什么想法吗?
编辑
最后,我在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参数前进一样。
发布于 2013-02-09 16:07:35
我建议使用maven发布插件的-Darguments=参数,因为在发布周期中maven将被分叉,这似乎就是这里的问题所在。
像这样
mvn -B release:prepare release:perform -Darguments="-Dusername=foo -Dpassword=bar"注意引号。
https://stackoverflow.com/questions/14789836
复制相似问题