Understanding DevOps Part-03
In this we will understand about package management system.
Ø JAVA Package Build System
1. What is JAR vs WAR vs EAR ?
A. JAR, WAR, EAR are the archive file formats that are used to package java-based application.
JAR: - Java Archive package
WAR: - Web Application Archive package
EAR: - Enterprise Application Archive package
- These package systems use general system algorithm to pack the files together like a folder in general words
- With the help of maven, gradel and ant we build these packages.
- Images, servlets, Html, xml, etc file we be there in these packages.
- By looking at the below image, you can see the folder structure. EAR is bigger, so it can contain all types of files inside the ear file. These are the files and folders we have.
Ø Python Package Build System
2. What is wheel
vs tar.gz
A. “Wheel and tar.az” are the packaging file formats that are used
to package python files together.
Wheel: - It
is a file format system used to pack all the necessary files and information of
a Python in to single file package. Which can be shared with the other
developer easily. It ends with “.whl” extension.
Below is the example of the wheel file
pip install example_package-1.0-py3-none-any.whl
tar.gz: - It is a
compressed archive format that is widely used to distribute software packages
on the internet. In the context of Python, it is used to distribute source code
for a package, rather than a pre-compiled package. The user must download the
".tar.gz" file, extract the contents, and then run the package's
setup script to install it.
wget https://pypi.org/example_package-1.0.tar.gz
Dot net Package Build System
3. What is NuGet
( .nupkg )
A. The file packaging format commonly used in building
.NET-based applications is NuGet (.nupkg). NuGet is the package manager for the
Microsoft development platform, including .NET. It provides a way to package
and distribute software components, libraries, and tools, making it easier to
share code and reuse components across projects. NuGet packages can be consumed
in a variety of ways, including direct reference in a project or through a
Package Manager Console within Visual Studio.
4. list of
all the build tools
A. Certainly! Here's a list of build tools and package managers categorized by technology stacks:
General Build Tools:
- Apache Ant
- GNU Make
- Apache Ivy
- Apache Buildr
- Bazel
- Ninja
- SCons
- Rake (Ruby)
- Grunt (JavaScript)
- Gulp (JavaScript)
- Webpack (JavaScript)
- Cake (Cross-platform)
- FAKE (F# Make, Cross-platform)
- Pants (Python, Java, Scala)
- Buck (Android, iOS, Web)
- Leiningen (Clojure)
- SBT (Scala)
- Meson (C, C++, D, Fortran, Java)
- Premake (C, C++, Lua)
- Waf (C, C++, D, Fortran)
.NET Build Tools:
- MSBuild
- NuGet
- Paket
- Cake
- FAKE
- Nuke
- PSake (PowerShell)
Java Build Tools:
- Maven
- Gradle
- Ant
- Ivy
- Bazel
- Ant
- SBT (Scala)
- Leiningen (Clojure)
- Pants
Python Build Tools:
- setuptools
- Distutils
- pip
- Poetry
- Pybuilder
- Flit
- PEP 517/518 (Direct packaging via build systems like setuptools, flit, etc.)
JavaScript/Node.js Build Tools:
- npm (Node Package Manager)
- Yarn
- Grunt
- Gulp
- Webpack
- Parcel
- Rollup
- Bower
- Browserify
C/C++ Build Tools:
- CMake
- GNU Make
- Bazel
- Ninja
- SCons
- Waf
- Autotools (Autoconf, Automake, Libtool)
- Meson
- Premake
- Conan (C/C++ Package Manager)
Ruby Build Tools:
- Rake
- Bundler
- RubyGems
- Maven (can also be used with JRuby projects)
Other Build Tools:
- Go: go build, go install
- Rust: Cargo
- Swift: Swift Package Manager (SPM)
- PHP: Composer
- Groovy: Grape
- Kotlin: Gradle, Maven
- Objective-C: xcodebuild
- Erlang/Elixir: Mix
- Lua: LuaRocks
- Julia: Pkg
- Crystal: shards
- D: dub
- R: devtools, packrat
Please note that this is not an exhaustive list, as there are numerous build tools available for different programming languages and ecosystems. These are some of the commonly used ones in their respective domains.
Comments
Post a Comment