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

Popular Posts