SlideShare a Scribd company logo
Build Tools
What is a build?
What is a build tool ? 
Resolve 
Dependencies 
Deployment 
Compile 
Package
Build tools available 
RAKE
Java Build Tools 
XML Based 
+ 
Flexibility 
XML Based 
+ 
dependency management 
+ 
Reuse 
Groovy DSL 
+ 
Hybrid of Ant and 
Maven 
2000 2004 2012
Maven – its kinda neat ! 
Automatic Downloads 
Convention 
Over 
Configuration 
Plug-Ins
Maven – Basic concepts
POM – The Almighty 
project dependencies 
plugins 
goals 
build profiles 
project version 
“Project Object Model”
Default build lifecycle
The “expected” structure
Maven - Installation 
Make sure JDK 1.6 is installed. 
Add “JAVA_HOME” variable as Windows environment variable. 
Visit Maven official website, download the Maven zip file, for example : 
apache-maven-3.2.2-bin.zip. 
Add both M2(Path_till_maven_folder) and 
M2_HOME(Path_till_maven_bin_directory) variables in the Windows 
environment. 
Done, to verify it, run mvn --version in the command prompt.
Lets get to it then !
Questions

More Related Content

Build tools introduction

Editor's Notes

  1. The term build may refer to the process by which source code is converted into a stand-alone form that can be run on a computer or to the form itself. One of the most important steps of a software build is the compilation process, where source code files are converted into executable code. The process of building software is usually managed by a build tool. Builds are created when a certain point in development has been reached or the code has been deemed ready for implementation, either for testing or outright release. Build is a Version of Software in pre-release format used by the Developer or Development team to gain confidence for the final result of their Product by continuously monitoring their Product and solving any issues early during the development process.
  2. Build tools are programs that automate the creation of executable applications from source code(eg. .apk for 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: compiling source code into binary code. Packaging that binary code. Running tests. Deployment to production systems. 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.
  3. Maven will (after you declare which ones you are using) download all the libraries that you use and and the libraries that they they use for you automatically. This is very nice, and makes dealing with lots of libraries ridiculously easy. This lets you avoid "depenendency hell". It is similar to Apache Ant's Ivy. It uses "Convention over Configuration" so that by default you don't need to define the tasks you want to do. You don't need to write a "compile", "test", "package", or "clean" step like you would have to in Ant or a Makefile. Just put the files in the places Maven expects them and it should work off of the bat. Maven also has lots of nice plug-ins that you can install that will handle many routine tasks from generating Java classes from an XSD schema using JAXB to measuring test coverage with Cobertura. Just add them to your pom.xml and they will integrate with everything else you want to do.
  4. groupId:This is an Id of project's group. This is generally unique amongst an organization or a project. For example, a banking group com.company.bank has all bank related projects. artifactId: This is an Id of the project.This is generally name of the project. For example, consumer-banking. Along with the groupId, the artifactId defines the artifact's location within the repository. Version:This is the version of the project.Along with the groupId, It is used within an artifact's repository to separate versions from each other.
  5. Demo : Demo on firefox. POM elements. Downgrade selenium version. Demo on IE. System variables use. Life cycle phases. Step-by-step execution. Different profiles. i.e. smoke or regression.