Как и многие из вас, я работаю с многомодульным проектом Maven . По сравнению со многими системами он не очень большой, он имеет 15 модулей с 3 различными вариантами развертывания, много параметризации с файлами свойств и около 100 тыс. Строк Java-кода. В пиковые периоды разработки код подвергается серьезному рефакторингу из-за его унаследованного происхождения и необходимости непрерывной компиляции / упаковки и развертывания для каждого разработчика.
Несмотря на крутой курс обучения, все эти годы я принимал Maven и его философию. Я не говорю, что это идеально, но я искренне верю, что это хороший инструмент, который по-прежнему актуален, особенно когда ваш проект и команда растут по мере роста вашего проекта. (Этот пост не о евангелизации Maven все же).
Итак, одна из проблем, с которыми мы столкнулись в нашей команде, заключается в том, что, несмотря на переключение правильных флагов , разбиение и упаковку нашего кода в модули, использование профилей и всех предоставляемых maven «инструментов», время нашей сборки и упаковки медленно начало увеличиваться, достигнув порога в 1 минуту после полной очистки. Нашим основным компилятором был Sun / Oracle Javac, а время контролировалось с помощью упаковки из командной строки, а не с помощью IDE, где вы можете видеть различное время в зависимости от «интеграции Maven» и внутреннего компилятора, вызываемого каждым инструментом. [Мой эталонный компьютер — мой старый добрый MacBookPro 2009 года, Core 2 Duo 2.5, с твердотельным накопителем Vertex 3 (обрезка включена)]
Недавно, когда я просматривал твиттер-аккаунт Джейсона Ван Зила ( он был отцом Maven ), я обнаружил плагин жизненного цикла takari . Джейсон и его команда создают инструменты и плагины для экосистемы Maven, которые, я надеюсь, привнесут долгожданную эволюцию в экосистему Maven, к которой сообщество Maven стремится уже много лет.
Короче говоря, плагин takari жизненного цикла — это альтернативная реализация жизненного цикла Maven , которая объединяет 5 различных плагинов в один. Как только вы активируете его, он вступит во владение и вызовет свою собственную реализацию следующих 5:
- плагин ресурсов
- плагин компилятора
- плагин jar
- установить плагин
- развернуть плагин
Вы можете прочитать об этом здесь . Самое замечательное, по крайней мере, в моем случае, это плагин компилятора, который внутренне реализует стратегию инкрементной компиляции, основанную на механизме, который может обнаруживать изменения в исходных файлах и ресурсах !!
Чтобы понять разницу, при использовании плагина компилятора takari в вашей сборке maven по сравнению с классическим плагином компилятора и javac (который, скорее всего, многие из вас используют), я собираюсь поделиться таблицей из этого поста блога (объясняющей пошаговую компиляцию). ).
Гораздо более очевидно, что если вы решите использовать JDT вместо Javac, результаты будут еще лучше. В настоящее время мы придерживаемся Javac , но приведенная выше диаграмма сделала мое изменение компилятором по умолчанию в моей IDE IntelliJ, особенно когда я выполняю рефакторинг и все вокруг изменения, JDT был в любом случае намного лучше при добавочной компиляции по сравнению с Javac.
Как добавить takari в мою сборку? Это безопасно
Ну, в моем случае (и я думаю, что для многих из вас там), я просто следовал предложенному пути
здесь Я активировал плагин в родительском pom, а затем изменил тип упаковки для всех моих jar-модулей на «takari-jar».
1
|
takari-jar |
Это не так, в конце концов, изменения настолько просты, что вы можете вернуть их обратно.
В тот день, когда я запустил изменение жизненного цикла takari в нашем git-репо, через полчаса я начал слышать «wowss» и «yeees» от членов моей команды. Повторная упаковка изменений очень и очень дешевая, изменения в файлах ресурсов и свойствах гарантируют, что мы получим новый пакет при необходимости. Время переупаковки составило более 50% -60%.
Если у вас возникли те же проблемы со сборкой Maven, я настоятельно рекомендую вам попробовать takari на один день — это подарит вам и вашей команде серьезное время.
Я также хочу отметить, что takari бесплатен и, несмотря на то, что команда takari разработала и обновила его для неназванного «большого» клиента, команда может бесплатно отдать его и поделиться им с сообществом. Так что большое спасибо за это !!! Плагин можно найти на Maven Central .
Команда Takari еженедельно проводит видеовстречу в Google , информацию можно найти здесь, я хочу извиниться, что мне пока не удалось ее посетить, может быть, достаточно скоро.
Так что иди Maven! иди такари!
Ссылка: | Вы действительно хотите ускорить компиляцию / упаковку Maven? Тогда плагин Takari жизненного цикла является ответом. от нашего партнера JCG Пэрис Апостолопулос в блоге Папо . |