2012-03-16 3 views
0

Я столкнулся с довольно странной проблемой с нашим скриптом сборки groovy. Весь проект использует вспомогательный скрипт, который вызывает все другие скрипты сборки (maven и ant). Один из муравьев целей, на которые ссылается заводной сценарий вызывает, вызывает через «Exec» Grails войны:Ant вызов grails терпит неудачу с «[exec] Application pre-Grails 0.5, пожалуйста, запустите: обновление 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 

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

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

+1

Вы можете запустить «grails war» правильно в каталоге приложения? Эта ошибка указывает на то, что что-то внутри вашей структуры приложения было уничтожено. –

+0

Такое же исключение, если я запустил его из командной строки. После запуска обновления, как было предложено, он работает. –

ответ

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> 

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