Maven, разделение бинарников, документации и отчётов
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 17.04.19 19:53
Оценка:
Есть проект, собирающийся в Maven. Проект очень большой, используется несколько языков программирования (по большей части Java, C++ и Python, но есть вкрапления и других языков). В проекте немало вызовов сторонних утилит для кодогенерации и генерации документации.

Так вот. В этом всём большом проекте есть некоторые компоненты, над которыми я работаю. И проблема в том, что полная сборка проекта занимает несколько часов, при том, что большая часть всего этого мне для разработки моего компонента вообще не нужна. Нужны бинарники, но не документация, не нужны отчёты по покрытию кода тестами, не нужны вёб-интерфейсы, питоновские клиентские библиотеки и т.д. Плюс, вызов сторонних утилит приводит к тому, что оно не собирается под MacOS в том месте, где требуется какая-нибудь линуксовая утилита для генерации документации. Приходится вручную править pom.xml только чтоб собрать нужные бинарники. Из тех нескольких часов, которые занимает билд, на сборку исходников Java и C++ уходит никак не более часа.

Так вот. Чешутся у меня руки упорядочить это всё. По сути, получается, что нужно разбить все проекты на набор подпроектов и перестроить зависимости так, чтоб можно было отдельно собрать бинарники и не трогать ничего другого. При этом, потребуется несколько разных видов билдов — "только Java и C++", "только Java, C++ и Python", "только исходники" и "всё вместе — исходники и документация". Я сильно подозреваю, что решение проблемы где-то в создании "профилей" для Maven, но сам такого раньше не делал и с Maven'ом вообще работал только по инструкции — "добавить зависимость, скопипастить настройки". Я более-менее понимаю, как в Maven создать профиль в pom.xml, но тут мне нужно чтоб эти профили были сквозными по всем проектам и внешние зависимости тоже должны задаваться в профилях, а этого я никогда не пробовал.

Где б посмотреть на примеры или почитать, как нормальные люди настраивают такие билды?
С уважением, Artem Korneev.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.