Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is a build tool?

Tags:

build

For past 4 years, I have been programming with Eclipse (for Java), and Visual Studio Express (for C#). The IDEs mentioned always seemed to provide every facility a programmer might ask for (related to programming, of course).

Lately I have been hearing about something called "build tools". I heard they're used almost in all kind of real world development. What are they exactly? What problems are they designed to solve? How come I never needed them in past four years? Are they kind of command-line stripped down IDEs?

like image 274
Gaurang Agrawal Avatar asked Oct 22 '22 20:10

Gaurang Agrawal


2 Answers

What are build tools?

Build tools are programs that automate the creation of executable applications from source code (e.g., .apk for an Android app). Building incorporates compiling,linking and packaging the code into a usable or executable form.

Basically build automation is the act of scripting or automating a wide variety of tasks that software developers do in their day-to-day activities like:

  1. Downloading dependencies.
  2. Compiling source code into binary code.
  3. Packaging that binary code.
  4. Running tests.
  5. Deployment to production systems.

Why do we use build tools or build automation?

In small projects, developers will often manually invoke the build process. This is not practical for larger projects, where it is very hard to keep track of what needs to be built, in what sequence and what dependencies there are in the building process. Using an automation tool allows the build process to be more consistent.

Various build tools available(Naming only few):

  1. For java - Ant,Maven,Gradle.
  2. For .NET framework - NAnt
  3. c# - MsBuild.

For further reading you can refer following links:

1.Build automation

2.List of build automation software

Thanks.

like image 120
Ritesh Gune Avatar answered Oct 29 '22 15:10

Ritesh Gune


Build tools are tools to manage and organize your builds, and are very important in environments where there are many projects, especially if they are inter-connected. They serve to make sure that where various people are working on various projects, they don't break anything. And to make sure that when you make your changes, they don't break anything either.

The reason you have not heard of them before is that you have not been working in a commercial environment before. There is a whole lot of stuff that you have probably not encountered that you will within a commercial environments, especially if you work in software houses.

As others have said, you have been using them, however, you have not had to consider them, because you have probably been working in a different way to the usual commercial way of working.

like image 30
Schroedingers Cat Avatar answered Oct 29 '22 17:10

Schroedingers Cat