Thursday 19 March 2020

Incremental build with maven

This is 2020 and if you are starting any new java based project then gradle should be first option but for some reason if you are still stuck with Maven then you might find this post useful.

Image result for maven cartoon

Maven java/scala compiler plugin has decent support for incremental compilation but it is not able to handle few edge case like

  • Trigger compilation when file is deleted from source folder.
  • Skip unit test when code is not changed.

Just to handle deleted file scenario most of the time we have to run "mvn clean install" and that means full code is complied and unit test are executed. 

Compilation of scala code is slow and if project contain slow running test like starting webserver , spark context, IO etc then this becomes more worse. In many case wait time could be minutes.
I am not accounting for wasted CPU cycles for running test even when code is not changed.

As an experiment i took some ideas from Gradle and wrote add-on maven plugin that handles above stated issues by

 1. Cleaning target location when code is changed and trigger full build.
 2. Skip unit test execution when code is not changed.

Both of the these features can help in reducing compilation time significantly because most of the time only few modules are changed and previous build output can be used. You can get blazing fast builds by enabling this plugin.

How to use plugin
This plugin is added at pre-clean stage, add below entry to pom.xml and use "mvn pre-clean install" 

<plugin>
                <groupId>mavenplugin</groupId>
                <artifactId>compilerplugin</artifactId>
                <version>1.0-SNAPSHOT</version>
                <executions>
                    <execution>
                        <id>pre-clean</id>
                        <phase>pre-clean</phase>
                        <goals>
                            <goal>inc</goal>
                        </goals>
                    </execution>
                </executions> 
            </plugin> 


Plugin code is available @ compilerplugin github repo

sandbox code using plugin is available @ compilerplugintest github repo

Conclusion
Always collect metrics on build like how long it takes to compile , time taken by test , package size, dependency etc. Once you start measuring then you will notice how slow builds are and that also need same love as code.

Fast build is first step that enable continuous delivery.

71 comments:

  1. Hi !

    I was looking for a feature like this. Thank you for publishing it.
    Nevertheless with this in my pom :



    mavenplugin
    compilerplugin
    1.0-SNAPSHOT


    pre-clean
    pre-clean

    inc







    I have the following error : Cannot resolve plugin mavenplugin:compilerplugin:1.0-SNAPSHOT
    Do you know how to solve it ?

    ReplyDelete
    Replies
    1. Did you locally install compilerplugin ? . I have not published this in maven repo yet.

      Delete
  2. The code part does not work but it is the same you post previously.

    ReplyDelete
  3. Hi Ashkrit, thanks for sharing. I forked this project and I'd like to contribute to it.

    ReplyDelete
  4. Для внутрикомнатных работ использовать ФСФ плиту исключено - будут появляться посторонние субстанции при определенных условиях. Влагоупорный материал практически не вбирает пар, а по окончании просушки возвращается к своей первоначальной форме. Фанера ФСФ - это влагонепроницамый вид фанеры, получивший крупное распределение в строительстве. Наиболее часто ФСФ фанеру https://bbs.wuxhqi.com/home.php?mod=space&uid=1105410 применяют как внешний облицовочный материал.

    ReplyDelete
  5. льном сайте тренажера. Практика в Слоджи построено в формате игры. Обучение выполняется лишь только в интерактивном режиме на платформе Слоджи. Ребенок в минимальный период сможет приучиться бегло читать. Изначальный цикл https://slogy.ru/blog/skriningovoe-testirovanie-riska-formirovaniya-disleksii-u-doshkolnikov составляет примерно десяти минут в день.

    ReplyDelete
  6. Главная сфера использования - возведение кровли, помещений и времянок, складов внешняя отделка стен объектов. Распространено несметное количество видов смоляно фенолформальдегидной плиты https://xn--80aao5aqu.xn--90ais/, любая из которых отличается конкретными показателями. Определенные виды поставляемой фанеры хорошо противостоят воде, дождям и снегу, при чем листы остаются максимально жесткими.

    ReplyDelete
  7. Влагопрочная фанерная плита http://38.34.178.204/home.php?mod=space&uid=268966

    ReplyDelete
  8. Дженнифер Энистон 42 лучших фото смотреть фото https://cojo.ru/devushki/dzhennifer-eniston-42-foto/

    ReplyDelete
  9. Арктический блонд цвет волос 42 фото https://cojo.ru/pricheski-i-strizhki/arkticheskiy-blond-tsvet-volos-42-foto/

    ReplyDelete
  10. Ретивых Глеб cojo.ru

    ReplyDelete
  11. Мейн кун окрасы смотреть фото https://cojo.ru/zhivotnye/meyn-kun-okrasy-49-foto/

    ReplyDelete
  12. Прическа шегги боб классные фото https://cojo.ru/pricheski-i-strizhki/pricheska-sheggi-bob-55-foto/

    ReplyDelete
  13. Рамка клипарт в хорошем качестве https://cojo.ru/grafika/ramka-klipart-2-foto/

    ReplyDelete
  14. Фон капли дождя милые фото https://cojo.ru/fony/fon-kapli-dozhdya-62-foto/

    ReplyDelete
  15. Картинки буква а картинки https://cojo.ru/kartinki/kartinki-bukva-a-18-foto/

    ReplyDelete
  16. Светлана Павлова Актриса подборка https://cojo.ru/znamenitosti/svetlana-pavlova-aktrisa-45-foto/

    ReplyDelete
  17. Чернов Алексей в хорошем качестве https://cojo.ru/znamenitosti/chernov-aleksey-29-foto/

    ReplyDelete
  18. Корзина с белыми розами на день рождения крутые фото https://cojo.ru/pozdravleniya/korzina-s-belymi-rozami-na-den-rozhdeniya-20-foto/

    ReplyDelete
  19. Новогодние аватарки HD фото https://cojo.ru/kartinki/novogodnie-avatarki-61-foto/

    ReplyDelete
  20. Щенки мини таксы классные фото https://cojo.ru/zhivotnye/schenki-mini-taksy-40-foto/

    ReplyDelete
  21. Прямые волосы прическа фотографии https://cojo.ru/pricheski-i-strizhki/pryamye-volosy-pricheska-54-foto/

    ReplyDelete
  22. Клаудиа Мори в хорошем качестве https://cojo.ru/znamenitosti/klaudia-mori-49-foto/

    ReplyDelete
  23. Красивые часы другу на день рождения в хорошем качестве https://cojo.ru/pozdravleniya/krasivye-chasy-drugu-na-den-rozhdeniya-25-foto/

    ReplyDelete
  24. Bananas Wallpapers wallpapershigh.com HIGH RESOLUTION fast and free https://wallpapershigh.com/bananas

    ReplyDelete
  25. Beautiful Galaxy Wallpapers wallpapershigh.com fullhd fast and free https://wallpapershigh.com/beautiful-galaxy

    ReplyDelete
  26. Laptop High Quality Naruto Wallpapers wallpapershigh.com FULLHD for free https://wallpapershigh.com/laptop-high-quality-naruto-wallpapers

    ReplyDelete
  27. Beautiful Night Scenery Wallpapers wallpapershigh.com HD absolutely free https://wallpapershigh.com/beautiful-night-scenery

    ReplyDelete
  28. 80s Bands Wallpapers WallpapersHigh.com UHD for free https://wallpapershigh.com/80s-bands

    ReplyDelete
  29. Anime Kurumi Wallpapers wallpapershigh.com Hd absolutely free https://wallpapershigh.com/anime-kurumi

    ReplyDelete
  30. High Resolution Snow Wallpapers WallpapersHigh.com FULLHD for free https://wallpapershigh.com/high-resolution-snow-wallpapers

    ReplyDelete
  31. Art Macbook Wallpapers WallpapersHigh.com high res 100% free https://wallpapershigh.com/art-macbook

    ReplyDelete
  32. Bat And Ball Wallpapers wallpapershigh.com Hd fast and free https://wallpapershigh.com/bat-and-ball

    ReplyDelete
  33. Colorful Blur Wallpapers WallpapersHigh https://wallpapershigh.com/colorful-blur

    ReplyDelete
  34. Для того, что бы подготовить классный ремонт, потребуется понимать, какие типы фанеры имеются на онлайн-порталах и как они эксплуатируются. Есть несколько самых важных и самых используемых видов облицовочного материала. Фанеру https://fanwood.by/shop/fof-fanera/plosch.-lista-3.75-m2 посетитель сайта сможет на складе-магазине пиломатериалов в Белоруссии Фанвуд.

    ReplyDelete
  35. Cozy Christmas Wallpapers Wallpapershigh.com https://wallpapershigh.com/cozy-christmas

    ReplyDelete
  36. Довольно часто наблюдается покрытая ламинатом поверхность фанеры характерной, необычной строения и рисунка. Характерной чертой ламинированной пленки является не только высокое сопротивление воде, а также присутствие характерной расцветки. ФОФ ламинат существует как дерево https://fanwood.by/shop/fanera-fof/fanera-laminirovannaya-21kh1220kh2440-mm, в качестве натурального камня или керамогранитной плитки.

    ReplyDelete
  37. В целях осуществить классный ремонт, следует понимать, какие листы фанеры есть на строительных базах и с какой целью они применяются. Фанеру https://fanwood.by/shop/fk-fanera/klass-emissii-e-1 клиент имеет возможность на площадке стройматериалов в Минске Фанвуд. Бывает множество основных и самых распространенных разнообразий строительного материала.

    ReplyDelete
  38. Оформление, в том числе фирменный дисплей http://alexglass-spb.ru/index.php?subaction=userinfo&user=udomyn

    ReplyDelete
  39. Привет команда! Мне надоело скучать, и я открыл для себя обалденный сайт с крутыми картинками! Эти фото и иллюстрации меня просто унесли в невероятные приключения! Если у тебя тоже чтото быть может, тебе сюда: https://cvam.ru/komanda. Там тебя ждут фотки на любой вкус - машины, пейзажи, животные и многое другое! Просто смотри, комментируй и вдохновляйся! Пойдешь к ним? Жду своих бравых друзей!

    ReplyDelete
  40. Хэй, слушай сюда! Я недавно наткнулся на сайт, где ты можешь найти классные и стильные славянские татуировки. Как по мне, это просто огонь! Если тебе тоже нравится такое дело, смотри сюда: славянские татуировки. Там есть всякая фигня: обереги, символы и прочие вещи. Подумываю сделать себе что-нибудь в этом стиле, а ты? Одним словом, рекомендую!

    ReplyDelete
  41. Светлана Кузнецова - талантливая российская актриса, которая завоевала сердца зрителей своими выразительными ролями. Ее талант и профессионализм позволили ей с успехом справиться с самыми разными образами, будь то драматический или комедийный. Светлана является яркой представительницей российского кино и театра. Если вы хотите узнать больше о ее работах и посмотреть 42 фото с прекрасной артисткой, рекомендую посетить страницу на сайте https://cojo.ru/znamenitosti/svetlana-kuznetsova-aktrisa-42-foto-2/. Там вы сможете насладиться ее неповторимым талантом и красотой на полную мощность.

    ReplyDelete
  42. Привет, друзья! Если вы, как и я, обожаете смешные картинки и ищете оригинальные способы поздравить своего друга Ярослава с Днем Рождения, то я нашел отличный вариант для вас! Большая галерея, состоящая из 69 фото ���� смешных картинок поздравлений С Днем Рождения Ярослава ждет вас по ссылке https://douo.ru/smeshnye-kartinki-pozdravleniya-s-dnem-rozhdeniya-yaroslav/. Забавные и непревзойденные картинки точно поднимут настроение и подарят яркие и веселые впечатления. Не упустите возможность порадовать друга и сделать его день особенным и незабываемым - переходите по ссылке и наслаждайтесь просмотром!

    ReplyDelete
  43. Привет, я Алексей и хочу рассказать о своем невероятном опыте игры в интернет-казино Вавада. Я долго искал надежное и честное казино, и наконец, нашел идеальный вариант для себя. Сразу же меня привлекла возможность играть на вавада зеркало vavadasof3, что дает еще больше уверенности в надежности данного сайта. В момент регистрации меня приятно удивила простота и быстрота процесса. Я заполнил несколько основных полей и мог сразу приступить к игре. В интерфейсе казино Вавада очень легко разобраться, все интуитивно понятно и удобно. Конечно же, мне было интересно проверить ассортимент слотов, доступных на Ваваде. Я нашел здесь множество увлекательных игр, разнообразие которых просто поражает. А когда я увидел приветственный бонус и фриспины, я был в полном восторге. Крупные суммы выигрышей теперь казались мне реальными и доступными. Одно из самых главных преимуществ Вавады - быстрые выплаты. Как только мне удалось получить выигрыш, я моментально заказал его вывод, а деньги пришли на мой счет в течение нескольких часов. Я искренне рад, что нашел именно Ваваду и уверен, что она станет отличным выбором для всех любителей азартных игр. Присоединяйтесь ко мне и начинайте выигрывать уже сегодня, перейдя по ссылке вавада зеркало vavadasof3.

    ReplyDelete
  44. Э, дружище! На сайте pozdravlenya.ru я нарыл такую классную открытку с днем рождения для Вари. Ровно то, что тебе нужно, чтобы поздравить свою любимую малышку! Внутри открытки есть пожелания на каждый вкус. Не поверишь, но такие крутые картинки, что прям дух захватывает. И самое клевое, что можно скачать это чудо бесплатно! Так что не медли, жми сюда и балуй свою Варю самыми классными пожеланиями на ДР: Детская открытка с днем рождения Варя с пожеланиями. Да прибудет с тобой праздник! Как говорится, хорошего настроения и реально душевного праздника!

    ReplyDelete
  45. Девочки, хочу вам порекомендовать попробовать стильную стрижку - тройной каскад! Этот вариант подходит практически всем, вне зависимости от типа волос и формы лица. В результате получается объемная и легкая прическа, которая придает вам особый шарм и свежий образ. Если хотите посмотреть, как это выглядит, можете перейти по ссылке https://cojo.ru/pricheski-i-strizhki/strizhka-troynoy-kaskad-29-foto/. Там есть много фото, чтобы вы могли выбрать свой идеальный стиль. Не упустите возможность обновить свою прическу и быть на высоте моды!

    ReplyDelete