Was ist Maven?
Maven ist ein Build- und Projektmanagement-Tool für Java-Projekte. Es verwendet eine deklarative Konfiguration über pom.xml. Maven standardisiert Build-Lifecycle und Projektstruktur.
Was ist Gradle?
Gradle ist ein flexibles Build-Tool, das auf Groovy oder Kotlin DSL basiert. Es kombiniert Konzepte aus Maven und Ant. Gradle ist besonders für große Projekte performant.
Was ist der Hauptunterschied zwischen Maven und Gradle?
Maven ist XML-basiert und strikt konventionell. Gradle nutzt eine DSL und erlaubt mehr Flexibilität. Gradle ist in der Regel schneller.
Was ist der Maven Build Lifecycle?
Der Lifecycle besteht aus Phasen wie validate compile test package install deploy. Jede Phase führt definierte Ziele aus. Plugins hängen sich an diese Phasen.
Was ist ein Plugin in Maven?
Plugins erweitern Maven um Build-Funktionalität. Beispiele sind Compiler oder Surefire Plugin. Ohne Plugins kann Maven nichts ausführen.
Was ist ein Dependency in Maven?
Eine Dependency ist eine externe Bibliothek. Sie wird über groupId artifactId und version definiert. Maven lädt sie aus Repositories.
Was ist Dependency Scope in Maven?
Scopes bestimmen Sichtbarkeit und Lebensdauer von Dependencies. Beispiele sind compile test runtime provided. Sie beeinflussen Classpath und Packaging.
Was ist das lokale Repository?
Das lokale Repository liegt auf dem Entwicklerrechner. Es cached heruntergeladene Artefakte. Das beschleunigt Builds.
Was ist ein Remote Repository?
Remote Repositories hosten Artefakte zentral. Beispiele sind Maven Central oder Firmen-Repositories. Maven lädt Dependencies von dort.
Was ist das Parent POM?
Ein Parent POM definiert gemeinsame Konfigurationen. Es fördert Wiederverwendung und Konsistenz. Child-Projekte erben Einstellungen.
Was ist ein Multi-Module-Projekt?
Ein Projekt mit mehreren Modulen. Jedes Modul hat ein eigenes POM. Der Parent koordiniert den Build.
Was ist Gradle DSL?
Gradle nutzt eine Domain Specific Language. Sie kann in Groovy oder Kotlin geschrieben werden. Das macht Builds programmierbar.
Was ist build.gradle?
build.gradle ist die zentrale Gradle-Build-Datei. Sie definiert Plugins Tasks und Dependencies. Sie ersetzt pom.xml.
Was sind Tasks in Gradle?
Tasks sind ausführbare Build-Schritte. Sie können Abhängigkeiten haben. Gradle berechnet automatisch die Ausführungsreihenfolge.
Was ist Incremental Build in Gradle?
Gradle führt nur geänderte Tasks aus. Unveränderte Ergebnisse werden wiederverwendet. Das beschleunigt Builds erheblich.
Was ist der Gradle Daemon?
Der Daemon läuft im Hintergrund. Er hält den JVM-Kontext warm. Dadurch starten Builds schneller.
Was ist Dependency Management in Gradle?
Dependencies werden deklarativ definiert. Gradle unterstützt Version Constraints und BOMs. Konflikte lassen sich gezielt steuern.
Was ist BOM?
BOM steht für Bill of Materials. Es definiert konsistente Versionen für mehrere Dependencies. Häufig in Spring-Projekten genutzt.
Was ist Dependency Conflict Resolution?
Mehrere Versionen derselben Dependency können auftreten. Maven wählt die nächstgelegene Version. Gradle erlaubt feinere Kontrolle.
Was ist Transitive Dependency?
Eine Dependency bringt weitere Dependencies mit. Diese werden automatisch geladen. Das vereinfacht Nutzung externer Libraries.
Was ist Clean Build?
Ein Clean Build löscht alte Build-Artefakte. Danach wird alles neu erstellt. Das verhindert inkonsistente Zustände.
Was ist Reproducible Build?
Ein reproduzierbarer Build liefert immer dasselbe Ergebnis. Versionen und Abhängigkeiten sind fixiert. Das ist wichtig für CI/CD.
Wie integriert man Maven in CI/CD?
Maven wird über CLI in Pipelines ausgeführt. Typische Ziele sind clean test package. Artefakte werden anschließend deployt.
Wie integriert man Gradle in CI/CD?
Gradle nutzt gradlew Wrapper. Das garantiert gleiche Gradle-Versionen. Builds sind reproduzierbar.
Was ist Maven Wrapper?
Der Wrapper stellt eine definierte Maven-Version bereit. Entwickler müssen Maven nicht lokal installieren. Das erhöht Konsistenz.
Was ist Gradle Wrapper?
Der Wrapper lädt automatisch die passende Gradle-Version. Er ist Standard in Gradle-Projekten. Er vereinfacht Onboarding.
Wann ist Gradle die bessere Wahl?
Bei großen oder komplexen Projekten. Wenn Build-Performance wichtig ist. Auch für Android-Entwicklung.
Was sind typische Probleme mit Maven?
XML kann sehr verbose werden. Anpassungen sind begrenzt. Performance ist geringer als bei Gradle.
Was sind typische Probleme mit Gradle?
Die DSL kann komplex werden. Fehler sind manchmal schwer zu debuggen. Der Einstieg ist anspruchsvoller.
Last changed10 hours ago