読者です 読者をやめる 読者になる 読者になる

日々精進

新しく学んだことを書き留めていきます

gradleのどのタスクがコマンドラインから指定されたのかを調べる / 環境別にweb.xmlを変更する

project.gradle.startParameter.taskNames でコマンドラインから指定されたタスク一覧が取得出来る。 web.xmlの設定を環境別に変更するのに使った。 ローカル環境にデプロイする場合deployLocalを実行し、それ以外の場合はdeployコマンドを実行する場合以下のようになる。

processResources << {
    // 環境別にweb.xmlを生成する
    // Local環境ではHTTPを許可する
    def webXmlBinding = []
    if (project.gradle.startParameter.taskNames[0] == "deployLocal") {
        webXmlBinding = ["transportGuarantee":"NONE"]
    } else {
        webXmlBinding = ["transportGuarantee":"CONFIDENTIAL"]
    }
    def engine = new groovy.text.SimpleTemplateEngine()
    generatedWebXmlFile.withWriter { w ->
        w << engine.createTemplate(file("$webAppDir/$webXmlTemplateName")).make(webXmlBinding).toString()
    }
}

参考: