Gradle で Cargo を使って AP サーバーへのデプロイを自動化する
プラグインを使う
Gradle 用の Cargo のプラグインがあるのでそれを使う。
基本的な使い方は README に詳しく書いてあるので読めばわかる。ところどころ戸惑うけど、親切に書いてあってわかりやすい。
ローカルへのデプロイを試してみる
とりあえずローカルの AP サーバーへのデプロイを試みてみた。
以下のエントリでやったようにビルドの環境を整えてから、ビルドスクリプトに Cargo の設定を追加する。
// buildscript の設定は必須。 buildscript { repositries { jcenter() } dependencies { classpath 'org.gradle.api.plugins:gradle-cargo-plugin:1.5.1' } } cargo { containerId = 'wildfly8x' // http://cargo.codehaus.org/Home に対応 AP サーバーの一覧あり。 port = 9090 deployable { file = file('build/libs/HogeProject.war') } local { homeDir = file('C:\\software\\wildfly-8.1.0.Final') timeout = 600000 // デプロイに時間がかかってタイムアウトすることが多い場合は、長い時間を指定する。 systemProperties { // アプリケーション起動時の SQL ファイルの実行が失敗するため、文字コードを指定。 property 'file.encoding', 'UTF-8' } // ポート番号重複への対処。 containerProperties { property 'cargo.jboss.ajp.port', 9099 } } }
これでgradle cargoRunLocal
を実行すると、指定した AP サーバーが自動的に起動し、デプロイまでが行われる。
Jenkins の Deploy Plugin 非対応の AP サーバーを使うときなんかには重宝しそう。
追記
新しく記事書いた。