У меня другое понимание «работы». В моем случае я использую Hudson для создания нескольких проектов, для некоторых проектов у меня более одной работы, но не по тем же причинам, которые вы описали выше.
Я использую инструмент для создания проекта, такой как Ant или Maven, чтобы выполнить некоторые очень конкретные шаги моей сборки, например, ваши задачи [O] или [D]. Для более общих шагов я использую плагины hudson, которые обрабатывают эти процессы, такие как запуск модульных тестов, развертывание артефактов.
Я думаю, вы обнаружите, что многие из этих плагинов написаны на разных языках.
Несмотря на то, что Hudson - это удивительный мощный инструмент для непрерывной интеграции, я могу сказать, что сложные вещи сделаны Maven и его плагинами. Отчеты о покрытии кода, отчеты о найденных ошибках, создание сайта проекта, создание javadoc, инструментарий байт-кода - вот некоторые из задач, на которые я полагаюсь в Maven.
Итак, я использую разные задания, когда хочу, чтобы для каждой сборки была разная конечная цель, а не для создания цепочки элементов. Я хочу быть конечным набором артефактов.
Например, у меня есть работа по ежечасной сборке моего приложения и созданию отчетов по электронной почте в случае каких-либо ошибок, и у меня есть вторая работа для того же проекта, который генерирует релиз этого проекта, этот он называется вручную и Я использую его для генерации всех документов, отчетов и артефактов, которые мне нужно собрать для стабильной версии моего проекта.
Надеюсь, мой взгляд на использование Хадсона поможет.