Создайте единый модуль для всех ваших зависимостей времени сборки (аннотации, встроенный tomcat, генераторы кода и т. Д. Создайте его один раз и присоедините к плагину компилятора, чтобы они находились в пути сборки для всех модулей
создайте небольшую общую конфигурацию и разархивируйте ее в каждом модуле во время сборки (проверьте конфигурацию стиля, настройку ведения журнала и т. Д.)
поместите подключаемые модули mavenв свои собственные индивидуальные профили, которые могут быть внесены точно в срок по мере необходимости, например, проверка стиля, findbugs, JavaDoc, верный, отказоустойчивый, подписывание кода и т. д. Ваша обычная сборка должна использовать как можно меньше плагинов. Это действительно помогает сустранение неполадок, поскольку любой плагин может быть индивидуально включен с параметром командной строки -P
во избежание конфигурации вилки в плагине компилятора, это может удвоить время сборки. Если вам нужны -параметры, то толькофорк один раз для классов, которые в этом нуждаются.
написать тесты, чтобы они могли работать параллельно. Никаких тестов не требуетсяe, чем секунда.
используйте опцию -T 1C для параллельной сборки
используйте встроенную версию tomcat вместо tomcatплагин, для запуска Tomcat для интеграционных тестов.Избегайте запуска tomcat более одного раза.
исключите любые файлы jar, которые не нужно сканировать в свойствах конфигурации tomcat.
структурируйте ваш проектв сбалансированную группу дерева связанных компонентов под их собственным родительским пом.
Самым верхним является модуль POM BOM, модуль общих ресурсов, модуль пути общей сборки.Вы редко создаете их, когда все организовываете.
Следующее - это ваш топ-приложение, которое включает в себя следующие родительские помпы
- Обычные низкоуровневые модули без зависимостей.
-Gateway модуль, который включает в себя клиентские библиотеки http и интерфейсные модули.
-Бизнес-модули
-Контейнеры - Tomcat, Spring, DropWizzard и др.
-Пакеты - ubber jars, zips
-Runtimes - Rpms, исполняемые jar
Зависимости poms всегда должны указывать на poms более высокого уровня, чтобы избежать циклических зависимостей
Более медленные артефакты сборки должны быть последними, чтобы вы могли работать, не дожидаясь медленной упаковки.
У вас должна быть возможность собрать любую группу примерно за 5 секунд, построить свою войну за 5 секунд, запустить tomcat with springза 10 секунд для наихудшего случая 20-секундной итерации.
быстрый и инкрементный компилятор maven, поэтому старайтесь избегать генерации кода, вызывающего перекомпиляцию
создайте небольшой DSL и интерпретатор дляваши тесты.Мы видели, что этот подход работает в два раза быстрее, чем junit.
Я только что взял нашу большую полную сборку с 5 минут до 45 секунд, используя эти методы.Это много техники, но оно того стоит.Этот подход работает со стандартным плагином релиза maven и значительно упрощает поиск и устранение неисправностей.
Удачи.Это никогда не бывает достаточно быстрым
PS PCIe SSD тоже очень помогают