1

私は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 引数の転送を強制しているようなものです。

4

1 に答える 1

2

maven-release-plugin の-Darguments=パラメータを使用することをお勧めします。これは、リリース サイクル中に maven がフォークされ、ここで問題のように思われるためです。

このような

mvn -B release:prepare release:perform -Darguments="-Dusername=foo -Dpassword=bar"

引用符に注意してください。

于 2013-02-09T16:07:35.490 に答える