We can create a new WAR file with the following Grails command:
$ grails test war dist/test.war
This will make a new WAR file in the dist
directory with the name test.war
. We use the test environments for the settings.
With the following Groovy script we create a WAR file in the dist
for each environment. We use application.properties
to get the application name and version and use it to create the WAR filename.
// File: createwar.groovy // Run with: $ groovy createwar.groovy def ant = new AntBuilder() // Read properties. ant.property file: 'application.properties' def appVersion = ant.project.properties.'app.version' def appName = ant.project.properties.'app.name' def envs = ['dev', 'test', 'prod', 'testserver1', 'testserver2'] envs.each { env -> def grailsEnv = env ant.exec(executable: 'grails') { arg(value: "-Dgrails.env=${grailsEnv}") arg(value: 'war') arg(value: "dist/${appName}-${appVersion}-${grailsEnv}.war") } }