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

Sorting Algorithms

Bubble Sort Named as sinking sort. Compare each pair of the adjacent items and swap them if they are in the wrong order. Worst case and average case time complexity both O(n^2)  and best case time complexity is O(n).

Java-8

Java 8 New Features There are several new features added in Java 8 version. Some of the important new features are: Define methods inside the interface For each method Lambda Expression Stream API DateTime API 1) Define methods (default, static) inside the Interface After you published your interface, you can't change it by adding some abstract methods. But if you want to add methods you can define those methods inside the interface. Therefore Java 8 support default and static methods inside the interface. In Java 7 version interface only have abstract methods (no method implementation) and an abstract class can have both abstract and non-abstract methods. In Java 8 version you can add method implementation in the interface, but you have to declare that method as default method. ex: default void show(){............} To avoid diamond problem you have to override the method in implementation class if two interfaces have same default method ...