Introducció a Maven

Maven és una eina de gestió i comprensió de projectes que proporciona una manera estàndard de construir projectes Java. Utilitza un model de projecte basat en POM (Project Object Model) i pot gestionar la construcció, la documentació, la generació de reports, la gestió de dependències i molt més.

Conceptes Clau

  • POM (Project Object Model): És un fitxer XML que conté informació sobre el projecte i la configuració utilitzada per Maven per construir el projecte.
  • Repositoris: Maven utilitza repositoris per descarregar les dependències del projecte. Hi ha repositoris locals i remots.
  • Dependències: Llibreries que el projecte necessita per compilar i executar-se.
  • Plugins: Extensions que proporcionen funcionalitats addicionals durant el procés de construcció.

Configuració de Maven

Instal·lació de Maven

  1. Descarregar Maven:

    • Visita la pàgina oficial de Maven: Maven Download
    • Descarrega la versió binària més recent.
  2. Instal·lar Maven:

    • Descomprimeix l'arxiu descarregat en una ubicació adequada al teu sistema.
  3. Configurar les Variables d'Entorn:

    • Afegeix la ruta de Maven a la variable d'entorn PATH.
    • Configura la variable M2_HOME apuntant al directori d'instal·lació de Maven.
  4. Verificar la Instal·lació:

    • Obre una terminal i executa mvn -version per assegurar-te que Maven està instal·lat correctament.

Creació d'un Projecte Maven

  1. Crear un Projecte Nou:

    • Utilitza el següent comandament per crear un nou projecte Maven:
      mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
      
  2. Estructura del Projecte:

    • Maven crea una estructura de directoris estàndard:
      my-app
      ├── pom.xml
      └── src
          ├── main
          │   └── java
          └── test
              └── java
      

Fitxer POM (Project Object Model)

El fitxer pom.xml és el cor del projecte Maven. Conté informació sobre el projecte, les dependències, els plugins i altres configuracions.

Exemple de pom.xml

<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

Gestió de Dependències

Les dependències es defineixen dins del bloc <dependencies> del fitxer pom.xml. Maven descarregarà automàticament aquestes dependències des dels repositoris configurats.

Exemple d'Afegir una Dependència

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>5.3.8</version>
    </dependency>
</dependencies>

Plugins de Maven

Els plugins són components que proporcionen funcionalitats addicionals durant el procés de construcció. Es defineixen dins del bloc <build> del fitxer pom.xml.

Exemple d'Afegir un Plugin

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Comandes Bàsiques de Maven

  • Compilar el Projecte:

    mvn compile
    
  • Executar les Proves:

    mvn test
    
  • Construir el Projecte:

    mvn package
    
  • Instal·lar el Projecte al Repositori Local:

    mvn install
    
  • Executar el Projecte:

    mvn exec:java -Dexec.mainClass="com.example.App"
    

Exercicis Pràctics

Exercici 1: Crear un Projecte Maven

  1. Crea un nou projecte Maven utilitzant l'arquetip maven-archetype-quickstart.
  2. Afegeix una dependència a spring-core al fitxer pom.xml.
  3. Compila el projecte i assegura't que no hi ha errors.

Exercici 2: Afegir un Plugin

  1. Afegeix el plugin maven-compiler-plugin al fitxer pom.xml per configurar la versió de Java a 1.8.
  2. Compila el projecte utilitzant el plugin.

Solucions

Solució a l'Exercici 1

  1. Crear el projecte:

    mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    
  2. Afegir la dependència a spring-core:

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.8</version>
        </dependency>
    </dependencies>
    
  3. Compilar el projecte:

    mvn compile
    

Solució a l'Exercici 2

  1. Afegir el plugin maven-compiler-plugin:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
  2. Compilar el projecte:

    mvn compile
    

Conclusió

Maven és una eina poderosa per gestionar projectes Java, proporcionant una manera estàndard de construir, gestionar dependències i plugins, i automatitzar moltes tasques de desenvolupament. Amb els coneixements adquirits en aquest tema, estaràs preparat per començar a utilitzar Maven en els teus projectes Java, millorant la teva eficiència i organització.

Curs de Programació en Java

Mòdul 1: Introducció a Java

Mòdul 2: Flux de Control

Mòdul 3: Programació Orientada a Objectes

Mòdul 4: Programació Orientada a Objectes Avançada

Mòdul 5: Estructures de Dades i Col·leccions

Mòdul 6: Gestió d'Excepcions

Mòdul 7: Entrada/Sortida de Fitxers

Mòdul 8: Multithreading i Concurrència

Mòdul 9: Xarxes

Mòdul 10: Temes Avançats

Mòdul 11: Frameworks i Llibreries de Java

Mòdul 12: Construcció d'Aplicacions del Món Real

© Copyright 2024. Tots els drets reservats