Comments 13
И поэтому он не использует питон для сборки.
Любая декларативная система на голову лучше императивной собиралки т.к. она может нормально оптимизировать процесс сборки.
Ну и всякие там интеграции с IDE и прочие плюшки конечно надо велосипедить самому.
Любая декларативная система на голову лучше императивной собиралки т.к. она может нормально оптимизировать процесс сборки
Но как сделать что-то не стандартное - так хоть увольняйся.
Вариант изучить инструментарий и научиться им пользоваться не рассматривается? Те же make файлы, да они не современные и с хреновым user experience, однако я бы хотел увидеть задачу относящуюся к сборке проекта которую на них нельзя сделать.
ну мейк файл не такой уж и декларативный - из него можно на баше вызвать всё что угодно. А вот попробуйте с чистым мавеном что-то нетривиальное сделать.
Из любой билд системы можно вызвать что угодно (обычно компилятор конечно), и это что угодно имеет не определённые побочные эффекты. Правда на декларативность самой системы сборки это не влияет.
Вся идея мавена в том что в него можно воткнуть плагины, так что пытаться что-то сделать на чистом мавене это как раз не разобраться как этим инструментом надо пользоваться. Ну и раз в него пихаются плагины то декларативность мавена на самом деле под вопросом.
У нас хоть и не Java, но проект большой и разнообразный, состоящий из сильно разных компонент (Yocto и Android вместе, как вам такое?). Поэтому мы тоже используем Python. Но немного в другой роли. Скрипт на питоне читает yaml файл с описанием сборки и генерирует по нему build.ninja. Нинджа же прекрасно отслеживает зависимости и запускает собственно сборщики. Каждой задаче - свой инструмент.
Забавный факт: единственной IDE, которая поддерживает одновременную разработку на Java и C++, является Android Studio
NetBeans - нее ?
Eclipse - тоже нее?
А дальше вопрос стоит просто: вы предпочитаете питон груви? Ну не вопрос, пишите тогда на питоне. Я же предпочту груви питону в 99% случаев. Поэтому у меня в мавене нестандартные задачи решаются сравнительно легко и просто. Надо процедурный код написать — пишем. Не надо — используем механизмы мавена. Пока на IDE наш процедурный код не влияет — интеграция с ней также хороша.
гм, а не хотите связку Jenkins + SCons попробовать?
В Дженкинсе удобно распихать глобальные мазки и Ява. Плагинов море, Груви поддерживается.
Сконс удобно допиливать на питоне, и настроить билд С++ можно гибко.
Но это я так, спросить
< del, предыдущий комментатор уже предложил scons >
Но Python — это здорово
Согласен, но его тоже можно превратить в раздутый кошмар, даже быстрее чем все перечисленные системы сборки.
Мы даже не пробовали Gradle в проекте
Ну и зря решили соригинальничать. Gradle хоть и может показаться сложным, но универсален. Да, там в нём надо разбираться, но магии никакой нет. Плагины можно писать прямо внутри проекта.
А так чувствую, что если эту систему на Python продолжать развивать, то в итоге когда-нибудь получится аналог Gradle, с такой же "магией".
Не совсем понятно почему Make не устраивает. Make всеядный.
Python как инструмент сборки