Gradle SSH Plugin 1.1.1をリリースした
Gradle SSH Plugin 1.1.1をリリースしました.
GradleからリモートサーバにSSHしてコマンド実行やファイル転送を行うことができるプラグインです.Groovy DSLを活用しているので,簡単にSSH処理を記述できます.
New Features
1.1系で追加された新機能を紹介します.
Port Forwarding support
ポートフォワードがサポートされました.ローカルポートをリモートネットワークに転送したり,リモートポートをローカルネットワークに転送したりできます.詳しくは 3.6. Enable the port forwarding を参照してください.
// Forward localhost:18080 to remote:8080 forwardLocalPort port: 18080, hostPort: 8080 // Forward localhost:(allocated port) to remote:8080 int port = forwardLocalPort hostPort: 8080 // Forward localhost:18080 to 172.16.1.1:8080 forwardLocalPort port: 18080, host: '172.16.1.1', hostPort: 8080 // Forward *:18080 (listen to all) to 172.16.1.1:8080 forwardLocalPort bind: '0.0.0.0', port: 18080, host: '172.16.1.1', hostPort: 8080
// Forward remote:30000 to localhost:8080 forwardRemotePort port: 30000, hostPort: 8080 // Forward remote:30000 to 192.168.1.5:8080 forwardRemotePort port: 30000, host: '192.168.1.5', hostPort: 8080 // Forward remote:30000 (listen to all) to 192.168.1.5:8080 forwardRemotePort bind: '0.0.0.0', port: 30000, host: '192.168.1.5', hostPort: 8080
DSL extension system
クロージャでDSLを拡張できるようになりました.下記の例は restartAppServer
というメソッドをDSLに追加しています.メソッドの実装はクロージャで定義します.
ssh.settings {
extensions.add restartAppServer: {
execute 'sudo service tomcat restart'
}
}
ssh.run {
session(ssh.remotes.testServer) {
restartAppServer()
}
}
クロージャの内部からは project
インスタンスにアクセスできるので,プロジェクトのメタデータや依存関係を使った処理も記述できます.
詳しくは 5. DSL extension system を参照してください.
Kaizen
1.1.1で,ログの可読性を改善しました.全体的に,ログレベルやログの内容を見直しました.
1.1系では,Groovy 2.3から追加されたtraitを活用することで,DSLをプラガブルに拡張できるアーキテクチャに変更しました.これまで execute
などのメソッドを1つのクラスに集約して実装していましたが,複数のtraitに分けて実装するようにしました.これにより,保守性が改善されました.
Give me a star!
2/28現在で 99 stars です.あなたの一票を待ってます!