GeekFactory

int128.hatenablog.com

Gradle SSH Plugin 1.0.5をリリースした

Gradle SSH Plugin 1.0.4と1.0.5をリリースしました。

New Feature in v1.0.4

コマンドやシェルの終了ステータスを無視する設定を追加しました。下記のように引数に ignoreError: true を加えると、コマンドやシェルが0以外のステータスコードを返しても例外が発生しなくなります。従来は || true のようにコマンドを工夫する必要がありましたが、バージョン1.0.4からは設定で対応できます。

ssh.run {
  session(remotes.server) {
    // 新しく追加された書き方
    execute 'cat not_existent_file', ignoreError: true

    // 従来の書き方
    execute 'cat not_existent_file || true'
  }
}

グローバルに設定することも可能です。

ssh.settings {
  ignoreError = true
}

New Feature in v1.0.5

Gradle 1.xに対応しました。これまではGradle 2.0以降に限定していましたが、色んな対策を行ってGroovy 1.8.6で動作するように書き換えたので、Gradle 1.xで動作するようになりました。まだ実験的なサポートなので、何か問題があったら教えてください。

具体的には、下記の対策を行いました。

  • enumをGroovyからJavaに書き換えた
    • Groovy 2系でコンパイルしたenumをGroovy 1系でロードするとエラーになるため
    • Javaネイティブのenumであれば問題ない
  • Groovy 1.8.6より新しく追加されたメソッドを使わないように書き換えた
    • 今のところ Collection#first() だけ
    • 他にもある気がするけど、テストは問題なく通っている
  • traitをコンパイル時に適用するように書き換えた
    • Object#withTraits() はGroovy 1系で動かない
    • class X implements T1, T2 のようにコンパイル時に指定すればGroovy 1系でも動く

How to Use

こちらからドキュメントをご覧ください。