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
-
Descarregar Maven:
- Visita la pàgina oficial de Maven: Maven Download
- Descarrega la versió binària més recent.
-
Instal·lar Maven:
- Descomprimeix l'arxiu descarregat en una ubicació adequada al teu sistema.
-
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.
- Afegeix la ruta de Maven a la variable d'entorn
-
Verificar la Instal·lació:
- Obre una terminal i executa
mvn -version
per assegurar-te que Maven està instal·lat correctament.
- Obre una terminal i executa
Creació d'un Projecte Maven
-
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
- Utilitza el següent comandament per crear un nou projecte Maven:
-
Estructura del Projecte:
- Maven crea una estructura de directoris estàndard:
my-app ├── pom.xml └── src ├── main │ └── java └── test └── java
- Maven crea una estructura de directoris estàndard:
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
- Crea un nou projecte Maven utilitzant l'arquetip
maven-archetype-quickstart
. - Afegeix una dependència a
spring-core
al fitxerpom.xml
. - Compila el projecte i assegura't que no hi ha errors.
Exercici 2: Afegir un Plugin
- Afegeix el plugin
maven-compiler-plugin
al fitxerpom.xml
per configurar la versió de Java a 1.8. - Compila el projecte utilitzant el plugin.
Solucions
Solució a l'Exercici 1
-
Crear el projecte:
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
-
Afegir la dependència a
spring-core
:<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.3.8</version> </dependency> </dependencies>
-
Compilar el projecte:
mvn compile
Solució a l'Exercici 2
-
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>
-
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
- Introducció a Java
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
- Operadors
Mòdul 2: Flux de Control
Mòdul 3: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Mètodes
- Constructors
- Herència
- Polimorfisme
- Encapsulació
- Abstracció
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
- Lectura de Fitxers
- Escriptura de Fitxers
- Fluxos de Fitxers
- BufferedReader i BufferedWriter
- Serialització
Mòdul 8: Multithreading i Concurrència
- Introducció al Multithreading
- Creació de Fils
- Cicle de Vida dels Fils
- Sincronització
- Utilitats de Concurrència
Mòdul 9: Xarxes
- Introducció a les Xarxes
- Sockets
- ServerSocket
- DatagramSocket i DatagramPacket
- URL i HttpURLConnection