私はmaven-release-pluginを使用していくつかのアーティファクトをリリースしています。ゴール中にrelease:perform
、SCM 資格情報を使用していくつかのタスクを進めるインライン Groovy スクリプトを実行したいと考えています。
これは私のスニペットです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 引数の転送を強制しているようなものです。