Lista oprogramowania do automatyzacji kompilacji - List of build automation software
Automatyzacja build polega włączony lub automatyzację procesu kompilacji komputerowego kodu źródłowego w kodzie binarnym . Poniżej znajduje się lista godnych uwagi narzędzi związanych z automatyzacją procesów budowania.
Make-based
- GNU make , szeroko stosowana implementacja make z dużym zestawem rozszerzeń
- make , klasyczne narzędzie do budowania systemu Unix
- mk , pierwotnie opracowany dla wersji 10 Unix i Plan 9 i przeniesiony do systemu Unix jako część plan9port
- MPW Make , opracowany dla klasycznego systemu Mac OS i podobny, ale niekompatybilny z Unix make; nowoczesny macOS (OS X) zawiera zarówno GNU make, jak i BSD make; dostępne w ramach programu Macintosh Programmer's Workshop jako bezpłatne, nieobsługiwane pobieranie od Apple
- nmake
- PVCS -make, zasadniczo podąża za koncepcją make, ale z zauważalnym zestawem unikalnych cech składni
Niezgodny
- Apache Ant , popularny do tworzenia platform Java i używa formatu pliku XML
- Apache Buildr , system kompilacji open-source, oparty na Rake , daje pełną moc skryptów w Ruby z integralną obsługą większości umiejętności wymaganych w systemie kompilacji
- Apache Maven , narzędzie platformy Java do zarządzania zależnościami i zautomatyzowanego tworzenia oprogramowania
- ASDF LISP system budowania do budowania projektów LISP
- AAP , narzędzie do budowania oparte na Pythonie
- Bazel , część Blaze (własne narzędzie Google do budowania) napisane w Javie, używające Starlark (składnia pliku BUILD) do budowania projektów w Javie, C, C++, Go, Python, Objective-C i innych
- BitBake , narzędzie oparte na Pythonie ze szczególnym naciskiem na dystrybucje i pakiety do wbudowanej kompilacji krzyżowej Linuksa
- Boot , narzędzie do budowania Java i zarządzania zależnościami napisane w Clojure
- boost.build Dla projektów C++, wieloplatformowych, w oparciu o Perforce Jam
- Buck , system kompilacji opracowany i używany przez Facebooka, napisany w Javie, używający Starlark (składnia pliku BUILD) jako Bazel
- Buildout , oparty na języku Python system budowania do tworzenia, składania i wdrażania aplikacji z wielu części
- Cabal , wspólna architektura do budowania aplikacji i bibliotek w języku programowania Haskell
- Dub , oficjalny pakiet i budować kierownik D Języka
- FinalBuilder dla programistów Windows. FinalBuilder udostępnia graficzne IDE do tworzenia i uruchamiania projektów kompilacji w jednej aplikacji. Ostateczny kreator zawiera również możliwość wykonania testów jednostkowych, wdrażania projektów internetowych lub instalowania i testowania aplikacji.
- Flowtracer
- Gradle , operacja budowania i automatyzacja systemu open source z Apache Groovy opartym na języku konkretnej domeny (DSL), łączący cechy Apache Ant i Apache Maven z dodatkowych funkcji, takich jak niezawodne bieżących budowie
- Grunt , narzędzie do budowania front-end web development
- Gulp , kolejne narzędzie do kompilacji dla front-end
- IncrediBuild
- Leiningen , narzędzie zapewniające powszechnie wykonywane zadania w projektach Clojure, w tym automatyzację kompilacji
- Mix , narzędzie do budowania Eliksiru
- MSBuild , aparat kompilacji firmy Microsoft
- NAnt , narzędzie podobne do Ant dla .NET Framework
- Ninja , mały system kompilacji skoncentrowany na szybkości przy użyciu skryptów kompilacji generowanych przez systemy kompilacji wyższego poziomu
- Perforce Jam , narzędzie do budowania stworzone przez Perforce , inspirowane Make
- Phing , system budowania projektów PHP, oparty na Apache Ant
- Psake , język specyficzny dla domeny i narzędzie do automatyzacji kompilacji napisane w PowerShell
- System budowania Qt
- Rake , narzędzie do budowania oparte na Ruby
- sbt , narzędzie do budowania oparte na DSL opartej na Scali
- SCons , oparty na języku Python, ze zintegrowaną funkcjonalnością podobną do autoconf / automake
- Stack , narzędzie do budowania projektów Haskell , zarządzania ich zależnościami (kompilatory i biblioteki) oraz do testowania i benchmarkingu.
- tup , system kompilacji oparty na grafach , który wykorzystuje monitorowanie modyfikacji plików w celu zapewnienia prawie optymalnych czasów kompilacji z automatycznym wykrywaniem zależności.
- Visual Build , oprogramowanie graficznego interfejsu użytkownika do tworzenia oprogramowania
- Waf , oparte na języku Python narzędzie do konfigurowania, kompilowania i instalowania aplikacji. Jest zamiennikiem dla innych narzędzi takich jak Autotools , Scons , CMake czy Ant
- Wake , narzędzie do orkiestracji kompilacji i język od SiFive.
Generowanie skryptów kompilacji
Te narzędzia generatora nie budują bezpośrednio, ale raczej generują pliki, które mają być używane przez natywne narzędzie do budowania (jak te wymienione w poprzednich dwóch sekcjach).
- BuildAMation , wieloplatformowe narzędzie, używające deklaratywnej składni w skryptach C#, które buduje kod C/C++ w terminalu przy użyciu wielu wątków lub generuje pliki projektu dla Microsoft Visual Studio, Xcode lub MakeFiles.
- CMake generuje pliki dla różnych narzędzi do kompilacji, takich jak make , ninja , Apple Xcode i Microsoft Visual Studio . CMake jest również bezpośrednio używany przez niektóre IDE jako Qt Creator , KDevelop i GNOME Builder .
- GN to generator kompilacji, który wie, jak generować pliki kompilacji ninja .
- GNU Build System (aka autotools), zbiór narzędzi do przenośnych kompilacji. Należą do nich w szczególności Autoconf i Automake , wieloplatformowe narzędzia, które razem generują odpowiednie zlokalizowane pliki makefile.
- GYP (Generuj swoje projekty) - Stworzony dla Chromium ; to kolejne narzędzie generujące pliki dla natywnego środowiska build
- robię
- Meson , system kompilacji zoptymalizowany pod kątem wydajności i użyteczności, oparty jest na ninja w systemie Linux, Visual Studio w systemie Windows i Xcode w systemie macOS. Meson jest również bezpośrednio używany przez GNOME Builder .
- Oprogramowanie OpenMake Meister
- Premake , oparte na Lua narzędzie do tworzenia plików makefile, plików Visual Studio, projektów Xcode i nie tylko
- qmake
Ciągła integracja
- AnthillPro , automatyzacja kompilacji z obsługą potoku do automatyzacji wdrażania i testowania. Wiele platform, wiele języków
- Apache Continuum - przerwane
- Azure devops (dawniej TFS i VSTS), można Azure -hosted usługi lub self-hosted serwer możliwości budowania
- Bamboo , oprogramowanie do ciągłej integracji
- Bitbucket Pipelines and Deployments, ciągła integracja z hostowanymi repozytoriami Bitbucket
- Buildbot , oparte na języku Python narzędzie do ciągłej integracji oprogramowania, które automatyzuje cykl kompilacji/testowania
- Buildkite , platforma do uruchamiania szybkich, bezpiecznych i skalowalnych potoków ciągłej integracji we własnej infrastrukturze.
- CircleCI , hostowana usługa ciągłej integracji dla projektów GitHub i Bitbucket.
- CodePipeline , w pełni zarządzana usługa ciągłego dostarczania, która pomaga zautomatyzować potoki wydań w celu uzyskania szybkich i niezawodnych aktualizacji aplikacji i infrastruktury.
- CruiseControl , dla Java i .NET
- Przejdź na ciągłą dostawę , open source, wieloplatformowy
- GitLab ( GitLab Runner ), ciągła integracja i serwer git
- GitHub ( GitHub Actions ), bezpłatna usługa ciągłej integracji dla projektów open-source i serwera git
- Hudson , rozszerzalny silnik ciągłej integracji
- Jenkins , rozszerzalny silnik o ciągłej integracji, rozwidlony od Hudson
- Spinnaker , usługa ciągłego dostarczania w wielu chmurach typu open source od Netflix i Google
- TeamCity
- Travis CI , hostowana usługa ciągłej integracji
Zarządzanie konfiguracją
- Ansible (oparty na Pythonie)
- Silnik CF
- Szef kuchni (na bazie rubinów)
- LCFG
- Inżynier wydania oprogramowania OpenMake
- Wydra
- Marionetka (bazująca na rubinach)
- Sól (na bazie Pythona)
- Rex (bazujący na Perlu)
Meta-kompilacja
Narzędzie do meta-kompilacji może tworzyć wiele różnych projektów przy użyciu podzbioru istniejących narzędzi do budowania. Ponieważ zazwyczaj zawierają one listę pakietów do zbudowania, często nazywane są także menedżerami pakietów .
- Pkgsrc , menedżer pakietów NetBSD i innych systemów operacyjnych.
- Portage , menedżer pakietów dystrybucji Gentoo Linux
- Nix , funkcjonalny menedżer pakietów dla systemów Linux i macOS skupiający się na odtwarzalnych kompilacjach , używany w dystrybucji NixOS Linux.
- Guix , funkcjonalny menedżer pakietów oparty na Nix, używany w dystrybucji GuixSD Linux.
- Kolektywna wiedza , wieloplatformowy menedżer pakietów do przebudowy środowiska oprogramowania dla przepływów pracy badawczej
- Homebrew , menedżer pakietów dla macOS
Inni
- checkinstall , checkinstall to program, który monitoruje procedurę instalacji i tworzy standardowy pakiet dla twojej dystrybucji.
- Open Build Service , hostowana usługa pomagająca budować pakiety dla różnych dystrybucji Linuksa
Przegląd licencjonowania
Nazwa narzędzia | Język opisu | Licencja |
---|---|---|
AAP | Przepis | GNU GPL |
Mrówka | XML | Licencja Apache 2.0 |
MrowiskoPro | Wraps Make, Ant, Maven, MsBuild, Nant itp. dla kontrolowanych procesów budowania, wdrażania i testowania. | Wycofane |
Bambus | ciągła integracja | Wersja próbna |
Bazel | BUILD/Starlark, DSL w stylu Pythona | Licencja Apache 2.0 |
BuildAMation | C# dla skryptów kompilacji, XML dla zależności wysokiego poziomu | Nowa licencja BSD |
Konstruktor | Rubin | Licencja Apache 2.0 |
Uruchomić | Clojure | Licencja Publiczna Eclipse |
Kapistrano | XML | Licencja MIT |
CMake | używa pliku CMakeLists.txt | Nowa licencja BSD |
Zbiorowe ramy wiedzy | Skrypty Python z JSON API i meta-opisem JSON | Nowa licencja BSD |
Kontinuum | ? | Licencja Apache 2.0 |
Tempomat | XML | Licencja w stylu BSD |
Zdubbingować | JSON , SDL | Licencja MIT |
FinalBuilder | graficzne IDE z obsługą Ant/NAnt, MSBuild, JScript, VBScript, IronPython , PowerShell | Wersja próbna |
Gradle | DSL oparte na Groovy; DSL na bazie Kotlina | Licencja Apache 2.0 |
Jenkins | ciągła integracja | Licencja MIT |
Homebrew | Rubin | Uproszczona licencja BSD |
Leiningen | Clojure | Licencja Publiczna Eclipse |
robić | używa Makefile | Tak samo jak system operacyjny w pakiecie |
Maven | Model obiektu projektu | Licencja Apache 2.0 |
System budowy mezonów | niestandardowe DSL | Licencja Apache 2.0 |
Młyn | Scala | Licencja MIT |
Marka MPW | ? | Oprogramowanie bezpłatne |
MSBuild | XML | Licencja MIT |
Nant | XML | GNU GPL |
nmake | używa Makefile | Oprogramowanie bezpłatne |
Usługa otwartej budowy | używa różnych formatów opisów pakietów i obrazów (spec, dsc, ARCH, kiwi) | GNU GPL |
Perforce Jam | używa Jamfile | Wycofane |
Phing | XML | GNU LGPL |
Grabie | Rubin | Licencja MIT |
sbt (proste narzędzie do budowania) | DSL oparte na Scali | Nowa licencja BSD |
Scons | Pyton | Licencja MIT |
Team Foundation Server | MSBuild, Windows Presentation Foundation, JSON - interfejsy REST, programistyczne (może generować definicje za pomocą kodu) | Wersja próbna |
Tweaker (narzędzie do budowania) | Dowolny (domyślnie Ant, bash, batch, C, Erlang, Java, SQL i VBScript, z zewnętrznym interfejsem dla rozszerzeń) | GNU GPLv3 |
Wizualna kompilacja | XML | Wersja próbna |
Waf | Pyton | Nowa licencja BSD |