Автоматизация сборки включает создание сценариев или автоматизацию процесса компиляции исходного кода компьютера в двоичный код . Ниже приведен список известных инструментов, связанных с автоматизацией процессов сборки.
Сделать на основе
- GNU make , широко используемая реализация make с большим набором расширений
- make , классический инструмент сборки Unix
- mk , изначально разработанный для Unix версии 10 и Plan 9 и перенесенный на Unix как часть plan9port
- MPW Make , разработанный для классической Mac OS и похожий на Unix make, но не совместимый с ним; современная macOS (OS X) поставляется с производителями GNU и BSD; доступно как часть Macintosh Programmer's Workshop в качестве бесплатной неподдерживаемой загрузки с Apple
- nmake
- PVCS -make в основном следует концепции make, но с заметным набором уникальных синтаксических функций [1]
Несовместимый
- Apache Ant , популярный для разработки платформы Java и использующий формат файла XML.
- Apache Buildr , система сборки с открытым исходным кодом, основанная на Rake , дает полную мощность сценариев на Ruby со встроенной поддержкой большинства возможностей, необходимых в системе сборки.
- Apache Maven , инструмент платформы Java для управления зависимостями и автоматизированной сборки программного обеспечения.
- Система сборки ASDF LISP для сборки проектов LISP
- AAP , инструмент сборки на основе Python
- Bazel , часть Blaze (собственного инструмента сборки Google), написанная на Java, с использованием Starlark (синтаксис файла BUILD) для создания проектов на Java, C, C ++, Go, Python, Objective-C и других.
- BitBake , инструмент на основе Python с особым упором на дистрибутивы и пакеты для кросс-компиляции встроенных Linux.
- Boot , инструмент сборки Java и управления зависимостями, написанный на Clojure
- boost.build Для проектов C ++, кроссплатформенный, на основе Perforce Jam
- Buck , система сборки, разработанная и используемая Facebook, написанная на Java, с использованием Starlark (синтаксис файла BUILD) в качестве Bazel
- Buildout , система сборки на основе Python для создания, сборки и развертывания приложений из нескольких частей.
- Cabal , общая архитектура для создания приложений и библиотек на языке программирования Haskell
- FinalBuilder для разработчиков программного обеспечения Windows. FinalBuilder предоставляет графическую среду IDE для создания и запуска проектов сборки в одном приложении. Последний конструктор также включает в себя возможность выполнять модульный тест, развертывать веб-проекты или устанавливать и тестировать приложения.
- Flowtracer
- Gradle , система сборки и автоматизации с открытым исходным кодом, основанная на доменно- ориентированном языке (DSL) на основе Apache Groovy , сочетающая функции Apache Ant и Apache Maven с дополнительными функциями, такими как надежная инкрементная сборка
- Grunt , инструмент сборки для интерфейсной веб-разработки
- Gulp , еще один инструмент для сборки интерфейса.
- IncrediBuild
- Leiningen , инструмент, обеспечивающий часто выполняемые задачи в проектах Clojure, включая автоматизацию сборки.
- Mill , инструмент сборки на основе Scala , вдохновленный Bazel
- Mix , инструмент сборки Elixir
- MSBuild , механизм сборки Microsoft
- NAnt , инструмент, похожий на Ant для .NET Framework
- Ninja , небольшая система сборки, ориентированная на скорость за счет использования сценариев сборки, созданных системами сборки более высокого уровня.
- Perforce Jam , инструмент сборки от Perforce , вдохновленный Make
- Psake , предметно-ориентированный язык и инструмент автоматизации сборки, написанный на PowerShell.
- Система сборки Qt
- Rake , инструмент сборки на основе Ruby
- sbt , инструмент сборки, основанный на DSL на основе Scala
- SCons , основанный на Python, со встроенной функциональностью, аналогичной autoconf / automake
- Stack , инструмент для создания проектов Haskell , управления их зависимостями (компиляторами и библиотеками), а также для тестирования и тестирования.
- Tup, [2] быстрая файловая система сборки.
- Твикер , позволяющий писать определения задач на любых языках (или смешанных языках), обеспечивая при этом единый интерфейс для них всех.
- Visual Build , программное обеспечение с графическим пользовательским интерфейсом для сборки программного обеспечения
- Waf , инструмент на основе Python для настройки, компиляции и установки приложений. Это замена других инструментов, таких как Autotools , Scons , CMake или Ant.
Создание скрипта сборки
Эти генераторы инструменты не строят непосредственно, а создавать файлы , которые будут использоваться в родной инструмент для сборки (как те , перечисленные в двух предыдущих разделах).
- BuildAMation , многоплатформенный инструмент, использующий декларативный синтаксис в сценариях C #, который создает код C / C ++ в терминале с использованием нескольких потоков или создает файлы проекта для Microsoft Visual Studio, Xcode или MakeFiles.
- CMake генерирует файлы для различных инструментов сборки, таких как make , ninja , Apple Xcode и Microsoft Visual Studio . [3] CMake также напрямую используется некоторыми IDE как Qt Creator , [4] KDevelop и GNOME Builder . [5]
- GNU Build System (также известная как autotools), набор инструментов для переносимых сборок. К ним, в частности, относятся Autoconf и Automake , кросс-платформенные инструменты Unix, которые вместе создают соответствующие локализованные make-файлы.
- GYP (Generate Your Projects) - Создано для Chromium ; это еще один инструмент, который генерирует файлы для собственной среды сборки
- я делаю
- Meson , система сборки, оптимизированная для производительности и удобства использования, основана на Ninja в Linux, Visual Studio в Windows и Xcode в macOS. Мезон также напрямую используется GNOME Builder . [5]
- Программное обеспечение OpenMake Meister
- Premake , инструмент на основе Lua для создания make-файлов, файлов Visual Studio, проектов Xcode и т. Д.
- qmake
Непрерывная интеграция
- AnthillPro , автоматизация сборки с поддержкой конвейера для автоматизации развертывания и тестирования. Кросс-платформенный, кросс-языковой
- Apache Continuum - снято с производства
- Azure DevOps (ранее TFS и VSTS [6] ), может быть Azure -hosted услуг или самопринятый сервер возможности сборки
- Bamboo , программное обеспечение непрерывной интеграции
- Bitbucket Pipelines and Deployments, непрерывная интеграция для репозиториев, размещенных на Bitbucket [7]
- Buildbot , инструмент непрерывной интеграции разработки программного обеспечения на основе Python, который автоматизирует цикл компиляции / тестирования.
- Buildkite , платформа для запуска быстрых, безопасных и масштабируемых конвейеров непрерывной интеграции в вашей собственной инфраструктуре.
- CircleCI , размещенная служба непрерывной интеграции для проектов Github и Bitbucket.
- CodePipeline - полностью управляемая служба непрерывной доставки, которая помогает автоматизировать конвейеры выпуска для быстрых и надежных обновлений приложений и инфраструктуры.
- CruiseControl , для Java и .NET
- Непрерывная доставка , открытый исходный код, кроссплатформенность
- GitLab ( GitLab Runner ), непрерывная интеграция и git server
- Hudson , расширяемый механизм непрерывной интеграции
- Jenkins , расширяемый движок непрерывной интеграции, разветвленный от Hudson
- Spinnaker , мультиоблачная служба непрерывной доставки с открытым исходным кодом от Netflix и Google
- TeamCity
- Travis CI , размещенная служба непрерывной интеграции
Управление конфигурацией
- Ansible (на основе Python)
- CFEngine
- Chef (на основе Ruby)
- LCFG
- Инженер по выпуску программного обеспечения OpenMake
- Выдра
- Марионетка (на основе Ruby)
- Соль (на основе питона)
- Rex (на основе Perl)
Мета-сборка
Инструмент мета-сборки может создавать множество различных проектов, используя подмножество существующих инструментов сборки. Поскольку они обычно предоставляют список пакетов для сборки, их также часто называют менеджерами пакетов .
- Pkgsrc , менеджер пакетов NetBSD и других операционных систем.
- Portage , менеджер пакетов дистрибутива Gentoo Linux
- Nix , функциональный менеджер пакетов для Linux и macOS, ориентированный на воспроизводимые сборки , используемый для дистрибутива NixOS Linux.
- Guix , функциональный менеджер пакетов на базе Nix, используемый для дистрибутива GuixSD Linux.
- Collective Knowledge , кроссплатформенный менеджер пакетов для восстановления программной среды для исследовательских рабочих процессов.
- Homebrew , менеджер пакетов для macOS
Другие
- checkinstall , checkinstall - это программа, которая отслеживает процедуру установки и создает стандартный пакет для вашего дистрибутива.
- Open Build Service , размещенная служба, помогающая создавать пакеты для различных дистрибутивов Linux.
Обзор лицензирования
Название инструмента | Язык описания | Лицензия |
---|---|---|
AAP | рецепт приготовления | GNU GPL |
Муравей | XML | Лицензия Apache 2.0 |
AnthillPro | Обертывания Make, Ant, Maven, MsBuild, Nant и т. Д. Для контролируемых процессов сборки, развертывания и тестирования. | Снято с производства |
Бамбук | непрерывная интеграция | Пробная версия |
Базель | BUILD / Starlark, Python-подобный DSL | Лицензия Apache 2.0 |
BuildAMation | C # для сценариев сборки, XML для зависимостей высокого уровня | Новая лицензия BSD |
Строитель | Рубин | Лицензия Apache 2.0 |
Ботинок | Clojure | Общественная лицензия Eclipse |
Capistrano | XML | Лицензия MIT |
CMake | использует файл CMakeLists.txt | Новая лицензия BSD |
Система коллективных знаний | Скрипты Python с JSON API и метаописанием JSON | Новая лицензия BSD |
Континуум | ? | Лицензия Apache 2.0 |
Круиз-контроль | XML | Лицензия в стиле BSD |
FinalBuilder | графическая IDE с поддержкой Ant / NAnt, MSBuild, JScript, VBScript, IronPython , PowerShell | Пробная версия |
Gradle | DSL на основе Groovy; DSL на основе Kotlin | Лицензия Apache 2.0 |
Дженкинс | непрерывная интеграция | Лицензия MIT |
Домашнее пиво | Рубин | Упрощенная лицензия BSD |
Leiningen | Clojure | Общественная лицензия Eclipse |
делать | использует Makefile | То же, что и в комплекте ОС |
Maven | Объектная модель проекта | Лицензия Apache 2.0 |
Система построения мезонов | пользовательский DSL | Лицензия Apache 2.0 |
Мельница | Scala | Лицензия MIT |
MPW Марка | ? | Бесплатное ПО |
MSBuild | XML | Лицензия MIT |
NAnt | XML | GNU GPL |
nmake | использует Makefile | Бесплатное ПО |
Открытая служба сборки | использует различные форматы описания пакетов и изображений (spec, dsc, ARCH, kiwi) | GNU GPL |
Perforce Jam | использует Jamfile | Снято с производства |
Грабли | Рубин | Лицензия MIT |
sbt (простой инструмент сборки) | DSL на основе Scala | Новая лицензия BSD |
SCons | Python | Лицензия MIT |
Сервер Team Foundation | MSBuild, Windows Presentation Foundation, JSON - интерфейсы REST, программный (может генерировать определения с помощью кода) | Пробная версия |
Твикер (инструмент для сборки) | Любой (Ant, bash, batch, C, Erlang, Java, SQL и VBScript по умолчанию, со сторонним интерфейсом для расширений) | GNU GPLv3 |
Визуальная сборка | XML | Пробная версия |
Waf | Python | Новая лицензия BSD |
Рекомендации
- ^ обсуждение в списке рассылки о переносе сценариев PVCS-make на GNU-make , От: Пол Д. Смит, Тема: Re: PVCS to GNU, Дата: 25 февраля 2003 г.
- ^ http://gittup.org/tup/
- ^ "cmake-generators (7) - Документация по CMake 3.11.1" . cmake.org .
- ^ «Настройка CMake - Руководство по Qt Creator» . doc.qt.io .
- ^ а б «Среда разработки GNOME Builder, использующая множество функций для GNOME 3.28 - Phoronix» . www.phoronix.com .
- ^ https://azure.microsoft.com/en-us/blog/introduction-azure-devops/
- ^ https://confluence.atlassian.com/bitbucket/build-test-and-deploy-with-pipelines-792496469.html Кросс-платформенный
Внешние ссылки
- Список программного обеспечения для автоматизации сборки на Software Wiki, внешней вики