Build Tool or System

Build tools are programs or Process that automate the creation of executable applications from source code(example:apk for an android app). The building incorporates compiling, linking and packaging the code into a usable or executable form.

Build automation is the act(Process or program) of scripting or automating a wide variety of tasks that software developers do in their day-to-day activities.

For Java Development, the most popular build tools are Ant, Gradle, and Maven.  can be run in IDEs like IntelliJ or Eclipse or Android Studio, NetBeans.

Apache ANT: Apache Ant is a software tool for automating software build processes. It originally came from the Apache Tomcat project in early 2000. Apache Ant (Ant) is a general-purpose build tool. Ant creates an executable JAR file and create Javadoc for your project.

Apache Maven: Maven is a build automation tool used primarily for Java projects.Based on the concept of a project object model (POM).Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. Maven addresses two aspects of building software: First, it describes how software is built, and second, it describes its dependencies.

Gradle: Gradle is a project automation tool that builds upon the concepts of Apache Ant and Apache Maven and introduces a Groovy-based domain-specific language (DSL) instead of the more traditional XML form of declaring the project configuration.

MSBuild: MSBuild, also called Microsoft Build Engine, is a build tool for managed code and was part of .NET Framework.SBuild is a functional replacement for the nmake. MSBuild provides an XML schema for a project file that controls how the build platform processes and builds software

NAnt: NAnt is a free and open-source software tool for automating software build processes. It is similar to Apache Ant but targeted at the .NET environment rather than Java. The name NAnt comes from the fact that the tool is Not Ant.

SSH: Secure Shell, or SSH, is a cryptographic (encrypted) network protocol for initiating text-based shell sessions[clarification needed] on remote machines in a secure way. The SSH protocol (also referred to as Secure Shell) is a method for secure remote login from one computer to another.


Sbt: The interactive build tool, sbt is a build tool for Scala, Java, and more. It requires Java 1.6 or later, sbt Packages and publishes jars.

Broccoli: A fast, reliable asset pipeline, supporting constant-time rebuilds and compact build definitions. Comparable to the Rails asset pipeline in scope, though it runs on Node and is backend-agnostic. For background and architecture. Broccoli’s incremental rebuild system gives you sub-second compile times even when you’re working with hundreds of files.

Grunt: Grunt is a task-based command-line tool that speeds up workflows by reducing the effort required to prepare assets for production. Grunt is a JavaScript task runner, Grunt written in Node.js,Grunt is primarily used to automate tasks that need to be performed routinely. Grunt’s command-line interface (CLI).

Gulp: Gulp.js is a relatively new JavaScript-based task runner tool. It is similar to Grunt since both follow a modular-based architecture and are based on npm. Gulp tasks are defined by code rather than configuration. Gulp is faster than Grunt. Grunt uses temporary files to transfer output from one task to another whereas in Gulp files are piped between the tasks.