Список программного обеспечения для автоматизации сборки

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:58, 15 декабря 2017.

Автоматизация сборки включает в себя сценарный (скриптовый) язык или автоматизацию процесса компиляции исходного кода компьютера в двоичный код. Ниже приведен список известных инструментов, связанных с автоматизацией процессов сборки[Источник 1].

Инструменты, основанные на make

  • GNU make — широко используемая реализация с большим набором расширений
  • make — классический инструмент сборки Unix
  • mk — первоначально разработан для версии 10 Unix и Plan 9 и перенесен в Unix как часть plan9port
  • MPW Make — разработан для классической Mac OS и аналогичен, но несовместим с Unix make; современная macOS (OS X) поставляется как с GNU make, так и с BSD; доступен как часть Macintosh Programmer's Workshop (набор инструментов программиста Macintosh) как бесплатная, неподдерживаемая загрузка от Apple
  • nmake
  • PVCS-make — в основном следует концепции make, но имеет заметный набор уникальных синтаксических особенностей

Инструменты, не основанные на make

  • Apache Ant — популярен для разработки платформы Java, использует формат файла XML
  • Apache Buildr — система сборки с открытым исходным кодом, основанная на Rake, дает полную мощность скриптов в Ruby с интегральной поддержкой большинства возможностей, необходимых в системе сборки
  • Apache Maven — инструмент платформы Java для управления зависимостями и автоматизированной сборки программного обеспечения
  • ASDF LISP — система сборки для сборки проектов LISP
  • A-A-P — инструмент сборки на основе Python
  • Bazel — собственный инструмент сборки Google, теперь доступен в бета-версии
  • BitBake — инструмент на основе Python, уделяющий особое внимание дистрибутивам и пакетам для встроенной перекрестной компиляции Linux
  • Boot — инструмент сборки Java и управления зависимостями, написанный на Clojure
  • Buck — система сборки, разработанная и используемая Facebook
  • Buildout — основанная на Python система сборки для создания, сборки и развертывания приложений, состоящих из нескольких частей
  • Cabal — общая архитектура для сборки приложений и библиотек на языке программирования Haskell
  • FinalBuilder — для разработчиков программного обеспечения Windows. FinalBuilder предоставляет графическую среду IDE для создания и запуска проектов сборки в одном приложении. Конечный конструктор также включает возможность выполнения модульного теста, развертывания веб-проектов или установки и тестирования приложений
  • Flowtracer
  • Gradle — это система сборки с открытым исходным кодом и автоматизации с доменным языком на базе Apache Groovy (DSL), объединяющая возможности Apache Ant и Apache Maven с дополнительными функциями, такими как надежная инкрементная сборка
  • Grunt — инструмент для сборки интерфейсных веб-разработок
  • Gulp — еще один инструмент сборки для интерфейсов
  • IncrediBuild
  • Leiningen — инструмент, обеспечивающий часто выполняемые задачи в проектах Clojure, включая автоматизацию сборки
  • MSBuild — механизм сборки Microsoft
  • NAnt — инструмент, аналогичный Ant для .NET Framework
  • Ninja — небольшая система сборки, ориентированная на скорость, использует скрипты сборки, созданные системами сборки более высокого уровня
  • Perforce Jam — улучшенный инструмент сборки, который похож на make
  • Psake — специфично-доменный язык и инструмент автоматизации сборки, написанный на PowerShell
  • Qt Build System
  • Rake — инструмент сборки на основе Ruby
  • sbt (Scala Simple Build Tool) — инструмент сборки, построенный на базе DSL, который основан на Scala
  • SCons — основан на Python, со встроенной функциональностью, подобной autoconf/automake
  • Stack — инструмент для создания проектов Haskell, управления их зависимостями (компиляторами и библиотеками), а также для тестирования и сопоставления
  • Tweaker — позволяет определять задачи, которые могут быть написаны на любых языках (или смешанных языках), обеспечивает единый интерфейс для всех них
  • Visual Build — графическое программное обеспечение для пользовательского интерфейса, предназначенное для сборки программного обеспечения
  • Waf — это инструмент на основе Python для настройки, компиляции и установки приложений. Это замена для других инструментов, таких как Autotools, Scons, CMake или Ant

Инструменты сборки скриптов генерации

  • BuildAMation — многоплатформенный инструмент, использующий декларативный синтаксис в скриптах C#, который строит код C/C++ в терминале с использованием нескольких потоков или генерирует файлы проекта для Microsoft Visual Studio, Xcode или MakeFiles
  • configure
  • CMake — кросс-платформенный инструмент, который генерирует файлы для собственной среды сборки, такие как make-файлы для файлов Unix или Workspace для Visual Studio
  • GNU Build System — набор инструментов для портативных сборок. К ним, в частности, относятся Autoconf и Automake, кросс-платформенные инструменты, которые совместно генерируют соответствующие локализованные make-файлы
  • GYP (Generate Your Projects) — создан для Chromium; это еще один инструмент, который генерирует файлы для собственной среды сборки
  • imake
  • Meson — многоплатформенная система сборки, оптимизированная для производительности и удобства использования
  • OpenMake Software Meister
  • Premake — основанный на Lua инструмент для создания make-файлов, файлов Visual Studio, проектов Xcode и т. д.
  • qmake

Инструменты непрерывной интеграции

  • AnthillPro — автоматизация сборки с поддержкой конвейера для автоматизации развертывания и тестирования. Кросс-платформенный, кросс-языковой
  • Apache Continuum — разработка прекращена
  • Bamboo — программное обеспечение для непрерывной интеграции
  • Buildbot — инструмент непрерывной интеграции разработки программного обеспечения на основе Python, который автоматизирует цикл компиляции/тестирования
  • BuildIT — бесплатный графический сборщик или инструмент для задач Windows с акцентом на простоту и простоту использования
  • CABIE (Continuous Automated Build and Integration Environment) — имеет открытый исходный код, написана на Perl
  • CruiseControl — для Java и .NET
  • DeployBot — размещенная служба непрерывной интеграции
  • Go continuous delivery — имеет открытый исходный код, кросс-платформенный
  • Hudson — расширяемый механизм непрерывной интеграции
  • Jenkins — расширяемый механизм непрерывной интеграции, разветвление из Hudson
  • Shippable — размещенная облачная платформа, обеспечивающая непрерывную интеграцию, развертывание и тестирование в репозиториях GitHub и Bitbucket
  • TeamCity
  • Team Foundation Server — расширяемый механизм непрерывной интеграции от Microsoft
  • Travis CI — служба непрерывной интеграции
  • Visual Studio Team Services — предоставляют возможности сборки, размещенные в Azure

Инструменты управления конфигурацией

  • Ansible (на основе Python)
  • CFEngine
  • Chef (на основе Ruby)
  • Distelli
  • OpenMake Software Release Engineer
  • Otter
  • Puppet (на основе Ruby)
  • Salt (на основе Python)
  • Rex (на основе Perl)

Инструменты мета-сборки

Инструменты мета-сборки способны создавать много разных проектов, используя подмножество существующих инструментов сборки. Поскольку они обычно предоставляют из себя список пакетов для сборки, их также часто называют менеджерами пакетов.

  • Pkgsrc — менеджер пакетов NetBSD и других операционных систем
  • Portage — менеджер пакетов дистрибутива Gentoo Linux
  • Nix — функциональный менеджер пакетов для дистрибутива NixOS Linux, ориентированный на воспроизводимые сборки
  • Guix — функциональный менеджер пакетов для дистрибутива GuixSD Linux, основанный на Nix
  • Collective Knowledge — кросс-платформенный менеджер пакетов для восстановления программного обеспечения для исследовательских рабочих процессов

Другие инструменты

  • checkinstall — это программа, которая контролирует процедуру установки и создает стандартный пакет для вашего дистрибутива
  • Open Build Service — это веб-сервис, который помогает создавать пакеты для различных дистрибутивов Linux

Сравнение программного обеспечения автоматизации сборки

Название инструмента Язык описания Лицензия
A-A-P Набор правил GNU GPL
Ant XML Лицензия Apache 2.0
AnthillPro Wraps Make, Ant, Maven, MsBuild, Nant и т. д. для контролируемых процессов сборки, развертывания, тестирования Проприетарная
Bamboo Непрерывная интеграция Проприетарная
Bazel BUILD/Skylark, DSL подобен Python Лицензия Apache 2.0
Boot Clojure Лицензия Eclipse Public
BuildAMation C# для скриптов сборки, XML для высокоуровневых зависимостей Лицензия New BSD
Buildr Ruby Лицензия Apache 2.0
Capistrano XML Лицензия MIT
CMake Использует файл CMakeLists.txt Лицензия New BSD
Collective Knowledge Framework Скрипты Python с JSON API и JSON мета-описанием Лицензия New BSD
Continuum  ? Лицензия Apache 2.0
CruiseControl XML Лицензия BSD-стиля
ElectricCommander Гибкий, включая gmake, bmake, emake и ant scripts Проприетарная
FinalBuilder Графическая среда IDE с поддержкой Ant/NAnt, MSBuild, JScript, VBScript, IronPython, PowerShell Проприетарная
Gradle DSL, основанный на Groovy Лицензия Apache 2.0
Jenkins Непрерывная интеграция Лицензия MIT
Leiningen Clojure Лицензия Eclipse Public
make Использует make-файлы Различные
Maven Объектная модель проекта Лицензия Apache 2.0
Meson build system Пользовательский DSL Лицензия Apache 2.0
MPW Make  ?  ?
MSBuild XML Лицензия MIT
NAnt XML GNU GPL
nmake Использует make-файлы  ?
Open Build Service Использует различные форматы описания пакетов и изображений (spec, dsc, ARCH, kiwi) GNU GPL
OpenMake Software Meister Использует различные форматы описания пакетов и изображений (spec, dsc, ARCH, kiwi) Проприетарная с бесплатной лицензией (Artistic License) для небольших команд
Perforce Jam Использует Jamfile Проприетарная, бесплатная для проектов с открытым исходным кодом
Rake Ruby Лицензия MIT
sbt (Simple Build Tool) DSL на основе Scala Лицензия New BSD
SCons Python Лицензия MIT
Team Foundation Server MSBuild, Windows Presentation Foundation, интерфейсы JSON - REST, Programmatic (может генерировать определения через код) Проприетарная
Tweaker (build tool) Любой (Ant, bash, batch, C, Erlang, Java, SQL и VBScript по умолчанию, со сторонним интерфейсом для расширений) GNU GPLv3
Visual Build XML Проприетарная
Waf Python Лицензия New BSD

Источники

  1. List of build automation software // Wikipedia. [2017-2017]. URL: https://en.wikipedia.org/wiki/List_of_build_automation_software (дата обращения: 25.11.2017).