Кто-нибудь пробовал эту функцию и имеет какие-либо отзывы? Или кто-нибудь знает некоторые полезные образцы для поиска?
Опыт работы с Hudson - Проект построения матрицы
Ответы (2)
Я попробовал эту функцию несколько месяцев назад, но больше ею не пользуюсь (просто потому, что она мне не нужна, а не потому, что это не очень хорошая функция).
По сути, вы определяете n Axis, каждая ось является свойством с несколькими значениями.
Давайте рассмотрим пример: вы определяете ось «JDK» с возможным значением «1,4», «1,5», «1,6» и определяете другое свойство «база данных», где возможные значения — «oracle», «mysql».
Таким образом, Hudson запустит вашу сборку 6 раз:
- с JDK 1.4, со свойством database=oracle (т.е. JVM запускается с параметром -Ddatabase=oracle)
- с JDK 1.5, со свойством database=oracle
- с JDK 1.6, со свойством database=oracle
- с JDK 1.4, со свойством database=mysql
- с JDK 1.5, со свойством database=mysql
- с JDK 1.6, со свойством database=mysql
Затем, когда все будет завершено, вы сможете увидеть результаты для каждой итерации.
Эта функция может быть очень полезна, когда вам нужно протестировать приложение в нескольких средах (в моем примере, с разными версиями JDK или базы данных).
Обратите внимание, что, за исключением оси JDK, вы должны самостоятельно управлять свойством, указанным Хадсоном в качестве записи. В моем примере приложение должно учитывать само свойство «база данных». В конце концов, хорошей идеей будет использовать это свойство для включения определенного профиля в конфигурации Maven2, если ваш проект является мавенизированным (см. здесь для более подробной информации).
Надеюсь, мои объяснения достаточно ясны :)
withCredentials
, sh
и т. д., для извлечения значений
- person xbmono; 10.02.2021
Матричные сборки имеют ряд проблем:
- В целом несовместим с плагинами — они улучшаются, но вам нужно постоянно обновлять их.
- Артефакты — гораздо труднее вывернуться — URL-адреса немного более неуклюжи, найти их на FS (которого вам все равно следует избегать) теперь кошмар.
Это позор, потому что концепция очень хороша и очень удобна там, где она работает.
Редактировать
- Невозможность запуска отдельных точек.
Обычным способом решения этой проблемы является настройка параметризованных сборок для одновременного запуска, что сопряжено со своими проблемами, но избавляет нас от множества заданий с одним и тем же кодом и разными константами.