Избегание чистого сбоя (и, следовательно, сборки) от чего-то блокирующего каталог сборки - PullRequest
1 голос
/ 21 апреля 2011

Приглашение windows cmd является одним из виновников - я иногда захожу в один из моих подкаталогов сборок, чтобы что-то проверить, и, если я не закрою консоль или не перейду куда-то еще, моя следующая сборка, конечно, потерпит неудачу, он не может удалить каталоги сборки.

Конечно, я могу просто выйти из командной строки или cd out, но я забываю, и прежде чем я узнаю об этом, мой CI-сервер имеет все эти неудачные сборки только из-за этого.

Я могу представить, что Ant никак не может форсировать удаление, но есть ли другая хорошая стратегия? Можно ли сказать Ant попытаться удалить, но не потерпеть неудачу, если не может? Я понимаю, что это может быть не очень хорошая идея, но это то, что мне нужно взвесить специально для моего сценария.

Или, по крайней мере, есть опция cmd.exe или альтернативная строка cmd, которая не блокирует текущий рабочий каталог?

Ответы [ 4 ]

2 голосов
/ 21 апреля 2011

Windows не позволит вам удалить каталог, если кто-то еще находится в этом каталоге. Не имеет значения, является ли это консольным окном или окном проводника. Реального пути нет, кроме как сначала убить процесс.

Какой инструмент непрерывной интеграции вы используете? Если вы используете Jenkins или Hudson (Дженкинс расстался с Гудзоном несколько месяцев назад), вы можете просмотреть рабочий каталог, щелкнув ссылку «Рабочий каталог» в левой части окна. окно браузера. Это даст вам представление о вашем рабочем каталоге (чтобы вы могли проверить все), но не заблокирует каталог и не предотвратит удаление.

Если вам нужно попасть на сборочный компьютер, отключите задание, чтобы сервер сборки не пытался выполнить сборку, пока вы проверяете что-то.

1 голос
/ 21 апреля 2011

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

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

http://www.howtogeek.com/howto/windows/command-line-hack-for-terminal-server-has-exceeded-the-maximum-number-of-allowed-connections/

Вам нужно будет определить свои собственные критерии, когда нужно автоматически убивать сеансы.

0 голосов
/ 14 мая 2011

Может ли это быть вирусом, который вызывает у вас проблемы? Возможно, просто исключение этого каталога будет работать.

0 голосов
/ 28 апреля 2011

Возможно, вы захотите изучить атрибуты quiet и failonerror задачи удаления муравьев.Будьте осторожны, хотя.

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