Вызов ant grails завершается с ошибкой [exec] Приложение предшествует Grails 0.5, запустите: grails upgrade

Я столкнулся с довольно странной проблемой с нашим отличным сценарием сборки. Весь проект использует вспомогательный скрипт groovy, который вызывает все остальные скрипты сборки (maven и ant). Одна из целей муравья, вызываемая вызовами groovy script, вызывается через "exec" войну grails:

    <exec executable="cmd" dir="${parentDir}/${grails.appname}">
        <arg value="/c"/>
        <arg path="${env.GRAILS_HOME}/bin/grails.bat"/>
        <arg value="war"/>
        <arg value="${grails.appname}-${app.version}.war"/>
    </exec>

Вызов этого блока завершается ошибкой:

     [exec] Application is pre-Grails 0.5, please run: grails upgrade

Любые предложения, как обойти эту проблему?

Спасибо за ваше время.


person Olimpiu POP    schedule 16.03.2012    source источник
comment
Вы можете правильно запустить «войну Грааля» в каталоге приложений? Эта ошибка будет означать, что что-то в структуре вашего приложения было уничтожено.   -  person Tomas Lin    schedule 16.03.2012
comment
То же исключение, если я запускаю его из командной строки. После запуска обновления, как было предложено, все работает.   -  person Olimpiu POP    schedule 16.03.2012


Ответы (1)


Наконец-то я нашел решение проблемы, не знаю, лучший ли это способ, но это решило мою проблему. Таким образом, в ту же цель, что и блок «exec», я добавил новый блок «exec», чтобы вызвать обновление в grails.bat. Пока все хорошо, вызов этой команды без параметров будет генерировать вопрос подтверждения, следует ли продолжить запрошенную операцию - в ant это создаст бесконечный цикл. Чтобы этого избежать, я добавил параметр "-f". Весь исполнительный блок:

    <exec executable="cmd" dir="${parentDir}/${grails.appname}">
        <arg value="/c"/>
        <arg path="${env.GRAILS_HOME}/bin/grails.bat"/>
        <arg value="upgrade"/>
        <arg value="-force"/>
    </exec>

Надеюсь, это поможет кому-то.

person Olimpiu POP    schedule 05.04.2012