В Ant имеет ли значение порядок задач внутри цели? - PullRequest
4 голосов
/ 25 июня 2010

Я хочу сделать цель перезапустить tomcat6. Прямо сейчас у меня есть что-то вроде этого:

<taskdef name="stop" classname="org.apache.catalina.ant.StopTask" />
<taskdef name="start" classname="org.apache.catalina.ant.StartTask" />

...

<target name="restart" depends="deploy" description="Restart Tomcat" >
    <stop url="${manager}" username="${username}" password="${password}" path="${path}" />
    <start url="${manager}" username="${username}" password="${password}" path="${path}" />
</target>

Могу ли я рассчитывать на остановку перед запуском? Или я должен сделать две отдельные цели и иметь «начало» зависит от «стоп»?

Ответы [ 3 ]

5 голосов
/ 25 июня 2010

В общем, вы можете положиться на Ant для выполнения задач по порядку.<start> не выполняется до тех пор, пока <stop> не завершится.

Однако, учитывая природу Tomcat и то, что означает «остановить Tomcat», то, что на самом деле StopTask делает, похоже на

  1. Подключитесь к порту выключения Tomcat и скажите Tomcat, чтобы он корректно завершил работу
  2. После отправки сообщения выйдите из

Следовательно, можно ожидать, что StopTask завершится до Tomcat завершил процесс завершения работы - задача просто сообщает Tomcat о завершении работы, она не ждет его завершения.

Вам понадобится какой-то другой механизм в вашем скрипте, чтобы убедиться, что вы не пытаетесь запустить экземпляр Tomcat, пока другой экземпляр на том же порту все еще находится в процессе выключения (например, спитпроизвольное количество секунд).

2 голосов
/ 25 июня 2010

Да, порядок задач имеет значение, и в вашем случае «остановитесь» с запуском перед «запуском». Однако «стоп-кот» (процесс, а не только задача) не гарантированно завершится до того, как «старт» будет запущен.

Вы можете захотеть проверить 'start' и подождать, пока tomcat не запустится, прежде чем запускать новый экземпляр.

1 голос
/ 25 июня 2010

Да, остановка будет выполняться до запуска.Конечно, создание двух отдельных целей позволяет вам начинать и останавливать муравья, что может быть полезно по отдельности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...