Windows, ClearCase и Ant: как обрабатывать слэши в каталогах? - PullRequest
1 голос
/ 30 марта 2012

У меня есть пакетный сценарий Windows, который я использую для создания модуля, и сценарий, в свою очередь, использует команду ClearCase clearmake для управления фактическими компиляциями, созданиями каталогов и манипуляциями с файлами, т.е. обрабатывает содержимое Makefile.Пакетный сценарий работает безупречно при вызове из окна DOS или из командной строки «cmd / c ...».И так было уже несколько лет.

Недавно я решил перенести скрипт в Ant.Первым шагом, из-за простоты, было просто вызвать скрипт без изменений, используя задачу Exec (используя cmd /c).Почти сразу Ant завершает работу при создании каталога.Сообщение об ошибке сообщает что-то вроде:

mkdir: Cannot create the directory C:\\fred\\harry\\joe

Мне удалось проверить, что с помощью командной строки DOS команда mkdir C:\\fred\\harry\\joe работает нормально, поэтому, насколько я могу,скажем пока, Ant генерирует двойные разделители пути с обратной косой чертой в сочетании с чем-то, присущим clearmake и / или чем-то в Makefile, и вызывает ошибку.

Ответ, который я ищу, - это что-то вроде следующего: "Да, clearmake определенно является виновником, потому что ... "или" Если вы перевернете ту или иную вещь в Ant, будет сгенерирован только один обратный слеш ... ".Если не будет простого и быстрого объяснения, я углублюсь в проблему, чтобы определить, что именно является причиной сбоя.

Спасибо,

1 Ответ

0 голосов
/ 30 марта 2012

Я видел похожую ошибку с:

  • динамическими представлениями (более чувствительными к владению, чем представление моментального снимка на C: \, как в вашем случае)
  • конфликт дескриптора ресурсаскрипт пытается обновить ресурс, уже занятый другим процессом, что не должно быть в данном случае с вашим скриптом, так как он работал вне задачи Ant Exec)
  • сообщение об ошибке (например, вы создаете каталог, которыйуже существует: ошибка игнорируется в классическом скрипте, хотя она может прервать задачу ant.

Хотя последняя причина является хорошим кандидатом, попробуйте сначала упростить ваш скрипт (оставьте только mkdir например) для проверки того, что эта строка действительно является проблемой (а не «эта строка в сочетании с другими действиями, происходящими непосредственно перед этим»)

...