なにか作る

なにかを作るブログです。

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 サーバーを使うときなんかには重宝しそう。

追記

新しく記事書いた。