Как я должен предоставить разработчикам двоичные файлы библиотеки?

Я хочу, чтобы другие могли легко работать с моим хранилищем. Однако, поскольку некоторые из скомпилированных зависимостей имеют размер более 100 МБ, я не могу включить их в репозиторий. Github отклоняет эти файлы.

Каков наилучший способ обработки больших двоичных файлов зависимостей? Сборка библиотек из исходного кода под Windows не легка и занимает несколько часов. Я не хочу, чтобы каждый разработчик боролся с этим процессом.

0

Решение

Я недавно работал над использованием плюща (http://ant.apache.org/ivy/) с двоичными файлами C ++. Основная идея заключается в том, что вы строите двоичные файлы для каждой комбинации. Затем вы объедините каждую комбинацию сборки в файл с именем, подобным mypackage-windows-vs12-x86-debug.zip. В вашем ivy.xml вы будете ассоциировать каждый zip-файл только с одной конфигурацией (например, windows-vs12-x86-debug). Затем вы публикуете этот пакет с несколькими zip-файлами в репозитории Ivy. Вы можете разместить репо самостоятельно или попытаться загрузить его в существующее репозиторий Ivy. Вы должны создать пакет zip-файлов для каждой зависимости, а файлы ivy.xml описывают цепочку зависимостей среди всех пакетов.

Затем ваши разработчики должны настроить Ivy. В своих файлах ivy.xml они перечислят ваш пакет как зависимость вместе с необходимой конфигурацией (например, windows-vs12-x86-debug). Им также нужно будет добавить шаг разрешения / извлечения плюща в свою сборку. Айви загрузит zip-файлы для вашего пакета и все, от чего зависит ваш пакет. Тогда им нужно будет разархивировать & перемещать задачи в их сборках, чтобы извлечь предоставляемые вами двоичные файлы, и размещать их там, где их сборка ожидает.

Ivy — отличный инструмент, но он определенно оптимизирован для Java, а не для C ++. Когда все настроено, это здорово. Тем не менее, по моему опыту как человека, который совсем не знаком с DevOps, его интеграция в сборку C ++ была сложной задачей. Я обнаружил, что проще всего было создать простые задачи ant, которые выполняют требуемые действия ivy, а затем использовать мою «обычную» систему сборки (make) для вызова этих задач ant при необходимости.

Поэтому я должен также упомянуть, что причина, по которой я изучал использование Ivy, заключалась в том, что я реализовывал это в корпоративной среде, где я не мог изменять системные файлы. Если вы и ваши разработчики можете сделать это, вам лучше использовать систему RPM / APT. Вы настроите репо и попросите своих разработчиков добавить репо в соответствующий файл конфигурации RPM / APT. Тогда они будут запускать такие команды, как sudo apt-get install mypackage и apt-get сделает всю работу по загрузке и установке нужных файлов в нужных местах. Я не знаю, как это будет работать в Windows, возможно, кто-то создал Windows RPM / APT-клиент.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector