Я пытаюсь найти такой инструмент, как Maven (стандартизованная сборка и упаковка, ретрансляция артефакта и т.д.), которая поддерживает больше, чем Java (и C/С++), в частности Python и .NET(С#). Желательно особенно хорошее управление зависимостями.
Мы используем смешанный магазин языков на нашем месте, и текущая домашняя "über-buildsystem" на основе python должна, вероятно, уйти. Обратите внимание, что он не пытается делать подробные сборки, просто обрабатывает зависимости между модулями/проектами, загружает скомпилированные артефакты (несколько сотен мегабайт на библиотеку в случае С++) и вызывает msbuild/easy_install/etc в существующем .sln/.vcproj/etc, чтобы получить реальную сборку.
Это работает, но в основном потому, что я его создал и знаю, что он может и чего не может сделать, и продлеваю его, когда мне нужны новые вещи. Это не помогло другим разработчикам в этом заняться, и я все больше чувствую, что мы не должны фокусироваться на этом. (Несмотря на то, что это не так много работает и, похоже, не является убедительной альтернативой.)
Итак:
- Python setuptools представляется только для Python (и некоторой компиляции С++ → .pyd).
- Maven в основном использует Java и некоторые C/С++, в основном для JNI.
- Для C/С++ есть... ничего? (qmake/cmake для строительства)
- Для .NET есть некоторые вещи, но хорошо ли они работают за пределами Visual Studio и инструментальной привязки MSFT?
Создание еще одного Maven (но с более гибкой поддержкой) поверх Ant (с использованием Beanshell в основном) - это то, что я уже сделал. Текущий Python-материал является ответвлением этого.
Update:
Ant + Ivy потребовалось бы построить немного сверху, как я указал выше, но это, вероятно, лучший фундамент, чем то, что у нас есть сегодня, поскольку мы получаем больше задач сборки и репозитария артефакта из коробки. (См. Maven Как управление зависимостями для С++)
Вся помощь тепло ценится!