Maven revealed

Julien WITTOUCK

About Me

Solution & DevOps Architect

I like

I like

I like

I like

Proud owner of

I like


About You

IPhone vs Android

Cats vs Dogs

Coffee vs Tea

Lego vs Playmobil

Au menu

  • What is Maven?
  • Getting started

What is Maven?

Boîte à outils

  • Gestion du processus de build
  • Gestion des dépendances projet

POM

Project Object Model

Coordonnées du projet
  • groupId
  • artifactId
  • version
  • packaging (jar, war, apk)

Project Object Model

Infos du projet
  • Développeurs
  • URLs: SCM, Site, CI

Project Object Model

  • Dépendances
  • Build

Project Object Model

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
    <version>1</version>
</project>
<properties>
    <junitVersion>4.12</junitVersion>
</properties>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junitVersion}</version>
    </dependency>
</dependencies>

Processus de build

Construction du logiciel

mvn clean

Nettoyage des produits compilés

mvn validate

Vérifications automatiques sur le code source

mvn compile

Compilation du code source et des tests unitaires

mvn test

Exécution des tests unitaires

mvn package

Packaging de l'application (war/jar)

mvn install

Installation de l'application dans le repository local

mvn deploy

Déploiement de l'application (installation repository distant, déploiement sur serveur...)

Gestion des dépendances

Scope

  • compile (par défaut)
  • test (utilisation uniquement en phase 'test': JUnit, Mockito...)
  • provided (utilisation à la compilation, mais pas embarquée dans le package)
  • runtime (utilisation à l'exécution uniquement: drivers jdbc...)

Getting started

Initialisation

Preparation

export JAVA_HOME="/path/to/your/java/Home"

Download

Let's go to http://maven.apache.org/download.html

Setup

  • Extract
  • Add bin directory to PATH variable
  • Test install:
$ mvn -v

Proxy configuration

<settings>
  <proxies>
   <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>cache-etu.univ-lille1.fr</host>
      <port>3128</port>
      <username></username>
      <password></password>
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
    <proxy>
       <active>true</active>
       <protocol>https</protocol>
       <host>cache-etu.univ-lille1.fr</host>
       <port>3128</port>
       <username></username>
       <password></password>
       <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
     </proxy>
  </proxies>
</settings>

Thank you!

Questions?