Maven - pom.xml - Project Object Model

Card Puncher Data Processing

About

pom.xml is an XML representation of a Maven project known also as the project descriptor.

It is ultimately a project declaration. Where as a build.xml tells ant precisely what to do when it is run (procedural), a POM states its configuration (declarative).

The POM is the basic unit of work in Maven.

You can create it:

Definition of:

  • definition of dependencies: All dependencies required to build and run an application

See

Simple POM

<project 
  xmlns="http://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  
</project>

where:

  • project is the top-level element in all Maven pom.xml files.
  • modelVersion indicates the version of the model
  • The coordinate of a specific project in time is represented by:
    • groupId indicates the unique identifier of the organization or group that created the project.
    • version indicates the version of the artifact generated by the project. The SNAPSHOT designator in a version that a project is in a state of development.

Description/Documentation Element:

  • name indicates the display name used for the project.
  • url indicates where the project's site can be found.
  • description provides a basic description of your project.

Third party integration

Ant

The target fetchDependencies of an ant build script looks at the required dependencies, looks at maven's dependency cache (in the user's home directory) and downloads the dependency jar files from one of the maven repositories to the shared dependency cache.

Eclipse

To convert pom.xml to a project file for an IDE, you can use the utility mvn:

Idea

IDEA - Maven

Documentation / Reference





Discover More
Card Puncher Data Processing
IDEA - Maven

For each Maven Module, IntelliJ IDEA creates a pom.xml file.
Jenkins Global Jelly
Jenkins - Plugin (*.hpi File)

Jenkins defines extension point, which are interfaces or abstract classes that model an aspect of a build system. See ExtensionPointExtensions Points Those interfaces define contracts of what need to...
Card Puncher Data Processing
Maven

is a build tool. It is declarative build tool whereas ant is a procedural build tool. You can then change the build process by changing the process not the declaration. Most of the project declaration...
Card Puncher Data Processing
Maven - (Deploy|Distribution) Phase

This deploy phase copies: a (final) package a web site or the Javadoc documentation to a remote repository for sharing with other developers and projects. In most project builds, the deploy phase...
Card Puncher Data Processing
Maven - (Property|Filter)

A property is used to supplied value of resource files at build time. This process is called filtering. A property can be: one of the values defined in your pom.xml, a value defined in the user's...
Card Puncher Data Processing
Maven - (Remote Repository|Server)

Remote repository in maven A remote repository (or server) can be defined as: a source to resolve dependency (via HTTP) or as a target to deploy the artifact (via SCP) The definition dependent on...
Card Puncher Data Processing
Maven - Assembly (Plugin)

The assembly plugin will build assembly. An “assembly” is a group of files, directories, and dependencies that are assembled into an archive format and distributed. The plugin goals documentation...
Card Puncher Data Processing
Maven - Bin (Bash and Bat file creation)

How to create standard bash and/or dos file to start a Java application. With resource filtering, you can create a bash/dos script template. The steps are: defining the property value that will...
Card Puncher Data Processing
Maven - Central Repository

The Central repository is the the default repository for Apache Maven but also for other build system such SBT. This is hosted on a nexus repository manager server. ...
Card Puncher Data Processing
Maven - Configuration Files (Pom, Settings, Profiles, )

Maven configuration occurs at differents levels: Project - The pom.xml file is the core of a project's configuration in Maven. User - this is configuration specific to a particular user: (%USER_HOME%/.m2/settings.xml)...



Share this page:
Follow us:
Task Runner