What is Maven ?

  • It is a powerful project management tool that is based on POM (Project Object Model)
  • It is used for project build, dependency and documentation
  • It can be used for building and managing any Java-based project

What can Maven do?

  • Can easily build a project
  • Can add jars, plugins and other dependencies based on needs
  • Helpful in updating central repository of JAR’s and other dependencies
  • Can build any number of projects into packaging as JAR, WAR etc

Features of Maven

  • Simple project setup that follows best practices
  • Reduces time & manual intervention on project dependency management across environments
  • Allows to do multiple builds at the same time
  • Consistent usage across all projects
  • Dependency management including automatic updating
  • Has a large and growing repository of libraries
  • Extensible, with the ability to easily write plugins in Java or scripting languages
  • Provides instant access to new features with little or no extra configuration

How maven works?

Overview of Maven core concepts

Maven Concepts

POM File

Sample POM file

What is Jenkins?

  • Jenkins is an open source automation tool written in Javawith plugins built for Continuous Integration purpose
  • It is used to build and test your software projects continuously making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build
  • It also allows you to continuously deliver your software by integrating with a large number of testing and deployment technologies With Jenkins, organizations can accelerate the software development process through automation
  • Jenkins integrates development life-cycle processes of all kinds, including build, document, test, package, stage, deploy, static analysis and much more
  • Jenkins achieves Continuous Integration with the help of plugins. Plugins allows the integration of Various DevOps stages If you want to integrate a particular tool, you need to install the plugins for that tool. For example: Git, Maven 2 project, Amazon EC2, HTML publisher etc.

Advantages of Jenkins

  • It is an open source tool with great community support
  • It is easy to install & configure
  • It has 1000+ plugins to ease your work. If a plugin does not exist, you can code it and share with the community
  • It is built with Java and hence, it is portable to all the major platforms

Continuous Integration through Jenkins

  • Continuous Integration is a development practice in which the developers are required to commit the changes to the source code in a shared repository several times a day or more frequently
  • This allows the teams to detect the problems early
Before Jenkins After Jenkins
The entire source code was built and then tested. Locating and fixing bugs in the event of build and test failure was difficult and time consuming, which in turn slows the software delivery process Every commit made in the source code is built and tested. So, instead of checking the entire source code developers only need to focus on a particular commit. This lead to frequent new software releases
Developers have to wait for test results Developers know the test result of every commit made in the source code on the run
The whole process is manual Only need to commit changes to the source code and Jenkins will automate the rest of the process for you