Я думал, что оставлю здесь ответ для всех, кто придет, поскольку я сам пытался решить эту проблему.
Один трюк - использовать знак хеш / фунт (#) в имени файла .war:
апи # 1.2.war
Что приводит к следующему контексту приложения:
http://localhost:8080/api/1.2/
Я проверял это в Tomcat 7.
Одна из причин, по которой я захотел это сделать, заключается в том, что я могу автоматически отправлять разные версии, работающие бок о бок со следующими grails BuildConfig.groovy:
grails.project.war.file = "target/api#${appVersion}.war"
Это прекрасно работает с Tomcat 7, я не уверен насчет других версий.
Тем не менее, я бы хотел настроить его так, чтобы Tomcat использовал контекст из моих файлов Grails Config.groovy или application.properties .
Обновление 1: Я использую Grails 1.3.7.
Обновление 2: Успешно протестировано пользователем miek в Tomcat 6. Спасибо, miek!