Запуск Nightly Builds в качестве запланированной задачи XP - проблема пути к классам

Я запускаю ночные сборки JUnit на моем компьютере в качестве запланированной задачи в Windows XP. Мое приложение использует Jaxb, поэтому некоторые тесты должны ссылаться на схемы xsd с использованием системного пути к классам. Когда ночная сборка запускается, когда меня нет за компьютером, я получаю такую ​​ошибку:

java.lang.Exception: невозможно загрузить схему mySchema.xsd из пути к классам

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

РЕДАКТИРОВАТЬ: Альтернативы, такие как Хадсон, - это не то, о чем я прошу. Я прошу решение для технологии, описанной выше (командный файл, запускаемый как запланированная задача).


person Ryan Thames    schedule 16.04.2009    source источник


Ответы (3)


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

Тем не менее, хотя раньше я настраивал автоматические сборки с использованием запланированных задач Windows XP (точно так же, как вы делаете сейчас), в настоящее время мы используем CruiseControl. Говоря абстрактно, это не сильно отличается от того, что вы делаете (регулярно запускаете сборку), но это увеличивает вашу гибкость. Здесь наиболее ценная способность CruiseControl - обнаруживать, что изменения были зафиксированы, и запускать сборку только затем. Мы узнаем о сломанных сборках, неработающих модульных тестах и ​​т. Д. В течение 10 минут после коммита.

person Bob Cross    schedule 16.04.2009

hudson - еще один механизм непрерывной интеграции, который очень и очень просто настроить:

Hudson предлагает следующие функции:

  • Простая установка: просто java -jar hudson.war или разверните его в контейнере сервлетов. Никакой дополнительной установки, никакой базы данных.
  • Простая настройка: Hudson можно полностью настроить с помощью удобного веб-интерфейса с обширной проверкой ошибок на лету и встроенной справкой. Больше нет необходимости настраивать XML вручную, хотя, если вы хотите это сделать, вы тоже можете это сделать.
  • Поддержка набора изменений: Hudson может сгенерировать список изменений, внесенных в сборку, из CVS / Subversion / Mercurial. Это также делается достаточно эффективно, чтобы уменьшить нагрузку на репозиторий.
  • Постоянные ссылки: Hudson предоставляет вам понятные и удобочитаемые URL-адреса для большинства своих страниц, включая некоторые постоянные ссылки «последняя сборка» / «последняя успешная сборка», чтобы на них можно было легко ссылаться из любого места.
  • Интеграция с RSS / E-mail / IM: отслеживайте результаты сборки с помощью RSS или электронной почты, чтобы получать уведомления о сбоях в режиме реального времени.
  • Маркировка постфактум: сборки могут быть помечены еще долго после завершения сборки Отчет о тестах JUnit / TestNG: отчеты о тестах JUnit могут быть сведены в таблицу, суммированы и отображены с исторической информацией, например, когда он начал ломаться и т. Д. в граф.
  • Распределенные сборки: Hudson может распределять нагрузки сборки / тестирования на несколько компьютеров. Это позволяет максимально эффективно использовать простаивающие рабочие станции, расположенные под столами разработчиков. Отпечатки файлов: Hudson может отслеживать, какая сборка была создана, какие jar-файлы, какая сборка использует какую версию jar-файлов, и так далее. Это работает даже для jar-файлов, которые производятся за пределами Hudson, и идеально подходит для проектов, отслеживающих зависимости.
  • Поддержка плагинов: Hudson может быть расширен с помощью сторонних плагинов. Вы можете написать плагины, чтобы Hudson поддерживал инструменты / процессы, которые использует ваша команда.
person dfa    schedule 16.04.2009

Вам следует проверить Hudson или Круиз-контроль. Оба они просты в настройке и решат проблемы такого типа за вас с помощью большего количества отчетов, контроля и повышения удобства использования. Вы потратите меньше времени на изучение проблем сборки.

person Alex B    schedule 16.04.2009
comment
Хаскелл? В самом деле? ты имеешь в виду Хадсон? - person dfa; 16.04.2009