Я запускаю Hudson в качестве службы Windows через Tomcat, без участия рабов. Последним этапом сборки в задании является командный файл, который вызывает некоторый код Java. В коде используется инструмент командной строки PostgreSQL psql (через Runtime.exec ()), чтобы создать базу данных на локальном компьютере и, в конечном итоге, выполнить некоторые тесты.
Задание будет выполняться до этого момента, а затем зависать до тех пор, пока не начнется создание базы данных. Если я запускаю командный файл из командной строки, он работает отлично. Я не думаю, что http://hudson.gotdns.com/wiki/display/HUDSON/Spawning+processes+from+build применимо, поскольку порожденный процесс, кажется, даже не начинает выполняться, но я новичок в этом, поэтому, пожалуйста, дайте мне знать, если я ошибаюсь.
Редактировать @anjanb:
Единственная цель пакетного файла - вызвать код Java, и единственный пользовательский ввод передается в качестве аргументов командной строки, которые, как я вижу, вводятся напрямую через консольный вывод сборки.
Process Explorer показывает, что psql запускается, но, очевидно, он не выполняется, поскольку первая команда psql предназначена для создания новой базы данных, но этого не происходит.
Редактировать 2: Я получил несколько советов из списка рассылки пользователей Hudson, опробую их в понедельник и сообщу.
Редактировать 3: Java-код уже потреблял выходные потоки, я использовал эту статью при разработке кода. Я не могу понять, что происходит, поэтому я перерабатываю код, чтобы использовать JDBC для создания базы данных, вместо того, чтобы полагаться на psql и Runtime.exec ()