Skip to main content

Maven

Maven is a software project management and comprehension tool, based on the concept of project object model.

Maven Usages

  • Build the code in the development environment (compile the source code, run the test cases and packaging the project)
  • Project management tool
    • Generate reports
    • Dependency management

Installation Steps

You can install Maven by following below steps

  • Manual Installation
    • Download Maven binary file
    • Create some environment variables
      • M2_HOME = environment point to maven directory
      • PATH = append Maven path until bin to path variable
  • Using Ubuntu Terminal
    • sudo apt-get install maven
To check Maven is successfully installed, issue the following command
    • mvn --version
To create a Maven project using Terminal use following steps
    • mkdir myApp
    • cd myApp/
    • mvn archetype:generate : choose archetype for the project 
    • groupId: org.amali.myProject (like package name)
    • artifactId: MavenTestApp (like class name)
    • Then use default suggestions and create a Maven project

Build the Project Using Maven

You can compile and build your project using Maven by following below steps.
  • To compile Maven application you should be in the folder that has pom.xml
    • mvn compile
    • In the compilation step, it does all the test cases automatically
  • Then package project into jar file
    • mvn package
  • To run the code
    • java -cp target/MavenTestApp-1.0-SNAPSHOT.jar  org.amali.myProject.App 

Overview


To execute code Maven first need to check the availability of all the dependencies (external jar files that project needs).If dependencies are not found in local Maven repository, then it will download from the central Maven repository and put then in the local repository. Following image describes the above scenario. 







  • Archetype Information: 
    • Details of projects created
    • Required information for creating new projects
  • Dependency Information
    • list of dependent jar files
To generate archetype

To generate archetype you will need the following information:
  • Archetype: type of the application (JEE, Spring, Hibernate)
  • GroupId: path to store artifacts
  • ArtifactId : output name
  • Version
  • Package: package type (war, jar)
Pom.xml

POM stands for Project Object Model.A POM file is an XML representation of project resources like source code, test code, dependencies, etc.
  • Maven coordinates (groupId, artifactId, version)
  • Metadata
  • Build information
  • Resources and dependencies
Phases

There are several phases in Maven build life cycle:
  • Validate: all the things are in order
  • Compile: create class files
    • mvn compile
  • Test: execute all test cases
    • mvn test
  • Package: package the whole code
    • mvn package
  • Install: install local Maven repository
    • mvn install
  • Deploy: publish artifacts into remote repository
mvn clean: clean all the generated files and folders (target folder)

If you enter the new library to your source file: You have to include it as a dependency in pom.xml (search from https://mvnrepository.com/)

To get updated version every time
  • include the following lines inside plugin tabs
    <configuration>
    <ScanUntervalSeconds>5</ScanIntervalSeconds>
    </configuration>
Convert the project into Eclipse Project
  • mvn eclipse:eclipse
  • Install maven eclipse integrator in eclipse to run Maven commands on Eclipse





Comments

Popular posts from this blog

Object Oriented Programming (OOP)

Object Object is an entity that has state and behavior Class Collection of objects is known as class. There are four main types of OOP concepts Inheritance Object acquire all the properties and behavior of parent object Improve code re-usability Polymorphism One task is performed by different ways Use method overload and override Abstraction Hiding internal details and showing functionality Use abstract class and interfaces Encapsulation Binding code and data into a single unit

Model-View-Controller (MVC)

MVC(Model-View-Controller) is a software design pattern.It divided your applications into three components Model: Contain business rules and application Data View: Presentation layer (user interface) Controller: Handles the communication between view and model  Objectives of MVC Promote code usability Implement separation of concerns  Separate user interface and software logic Web Frameworks That Use MVC There are several web frameworks that use MVC design pattern.  Ruby On Rails (Ruby) Angular (JS) Django (Python) Express (JS) Flask (Python) Codeigniter (PHP) Simple UseCase for MVC In this use case scenario, Browser sends information that needs to create Employee Object, and Controller save that information in Model and Update the Employee View. Following Image shows the class diagram for above Scenario. Implementation:  https://github.com/kaosadi17/MVC