Maven
Ce este Maven?
Maven este un instrument de automatizare a construirii proiectelor software folosit în principal pentru proiectele Java. Dezvoltat de Apache Software Foundation, Maven folosește un concept cunoscut sub numele de Project Object Model (POM) pentru a gestiona construirea proiectului, raportarea și documentația.
De ce să folosim Maven?
Gestionarea dependențelor - Maven descarcă automat librăriile necesare proiectului
Standardizare - Structură de proiect consistentă și ușor de înțeles
Automatizare - Compilare, testare, packaging și deployment automatizate
Reutilizare - Promovează reutilizarea codului și a componentelor
Concepte de bază Maven
1. POM (Project Object Model)
Fișierul pom.xml
este inima oricărui proiect Maven. Acesta conține:
Informații despre proiect (nume, versiune, descriere)
Dependențe
Plugin-uri
Configurații de build
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>ro.universitate.curs</groupId>
<artifactId>proiect-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
2. Coordonate Maven
Fiecare artifact Maven este identificat prin 3 coordonate:
groupId: Identificator al organizației (ex:
org.apache.maven
)artifactId: Numele proiectului (ex:
maven-core
)version: Versiunea specifică (ex:
3.8.4
)
3. Dependențe
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
4. Repository-uri
Maven descarcă dependențele din repository-uri:
Local - Director
.m2
din computerul utilizatoruluiCentral - Repository-ul central Maven (Maven Central)
Remote - Repository-uri definite de utilizator
5. Ciclul de viață Maven
Maven definește un ciclu de viață standard pentru construirea și distribuirea proiectelor, format din faze:
clean: Șterge fișierele generate anterior
validate: Validează structura proiectului
compile: Compilează codul sursă
test: Rulează testele unitare
package: Împachetează codul compilat (ex: în JAR)
verify: Verifică integritatea pachetului
install: Instalează pachetul în repository-ul local
deploy: Publică pachetul într-un repository remote
Structura standard a unui proiect Maven
proiect-maven/
├── pom.xml
├── src/
│ ├── main/
│ │ ├── java/ # Cod sursă Java
│ │ ├── resources/ # Resurse (configurații, etc.)
│ │ └── webapp/ # Fișiere web (pentru aplicații web)
│ └── test/
│ ├── java/ # Teste unitare
│ └── resources/ # Resurse pentru teste
└── target/ # Fișiere generate (JAR, WAR, etc.)
Comenzi Maven de bază
mvn clean
: Curăță directorultarget/
mvn compile
: Compilează codul sursămvn test
: Execută testele unitaremvn package
: Construiește pachetul (JAR, WAR)mvn install
: Instalează pachetul în repository-ul localmvn clean install
: Combinație frecventă (curăță și instalează)
Maven în IDE-uri populare
Maven în IDE-uri: IntelliJ IDEA și NetBeans
Una dintre avantaje este că Maven vine pre-instalat în cele mai populare medii de dezvoltare Java:
Avantajele utilizării Maven în IDE
Studenții nu trebuie să instaleze Maven separat
Configurare automată a classpath-ului bazat pe dependințe
Actualizare automată a dependințelor
Comenzile Maven pot fi executate direct din IDE
Resurse utile
Last updated