Постройка Maven - PullRequest
       16

Постройка Maven

9 голосов
/ 08 июня 2011

В настоящее время у нас есть большой проект Maven 2, который представляет собой скорее набор отдельных автономных проектов со сложными зависимостями, за исключением некоторых общих родительских POM для сборки.В конце концов, мы всегда должны поставлять приложение как одно целое, поэтому я бы предпочел преобразовать его в один или несколько больших проектов.

У кого-нибудь есть опыт оптимизации сборок непрерывной интеграции для больших проектов?,Полезна ли инкрементная сборка в Maven или Hudson?Я бы предпочел не ждать всегда 2 часа, когда сделал только небольшое изменение в одном модуле.

С другой стороны, чтобы быть уверенным, вам всегда придется пересобирать и перепроверять по крайней мере все прямые икосвенные зависимости измененного модуля.Это также то, что мы в настоящее время делаем с Hudson, автоматически вызывая все зависимые задания.

Окупается ли разделение на несколько заданий сборки для одного и того же проекта?Как правило, мне не нравится иметь на сервере артефакты, на которых все другие сгенерированные материалы, такие как отчеты, документы и т. Д., Возможно, устарели.

Спасибо за любые мысли.

Ответы [ 2 ]

8 голосов
/ 23 июня 2011

Я только что провел дополнительное тестирование, и, как я выяснил, Maven на самом деле не поддерживает инкрементные сборки.Без каких-либо плагинов Maven на самом деле ведет себя опасно.Если вы измените код в каком-либо модуле и скомпилируете без предварительной очистки, зависимые модули не будут перестроены, то есть они будут ссылаться на старую устаревшую версию зависимости и не будут реагировать на обновленный код.

С инкрементнымПлагин сборки можно построить без очистки.Каждый измененный модуль будет перестроен, а все зависимые будут очищены и перестроены.Однако в моем случае компиляция использует только 10% времени сборки, 90% - для тестирования.И когда я устанавливаю / внедряю, все тесты запускаются снова, поэтому выигрыш от использования плагина инкрементной сборки очень мал.

Так что я все еще вижу только возможность разделения сборок в Hudson, что вряд ли идеально для менямнение.

6 голосов
/ 08 июня 2011

Я бы настоятельно рекомендовал не делиться на разные рабочие места.По моему опыту, это может быстро выйти из-под контроля с зависимостями вверх и вниз по течению.Инкрементное строительство прекрасно работает для того, для чего оно вам нужно.Если зависимости устанавливаются напрямую, только артефакты, которые меняются, и их зависимости перестраиваются.

Я бы разделил задания по сборке, хотя, если бы они были совершенно отдельными приложениями без или очень мало зависимостей (если это правда, то они не должны 'находиться под одним и тем же реактором, и, следовательно, дополнительные наращивания были бы невозможны)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...