Was ist der Unterschied zwischen "pom" - Typ-Abhängigkeit mit Rahmen "import" und ohne "importieren"?
Ausgehend von Maven 2.0.9 gibt es die Möglichkeit zu zählen
<type>pom</type>
<scope>import</scope>
in der <dependencyManagement>
Abschnitt.
Wie ich es verstehe, wird es "ersetzt" werden mit Abhängigkeiten in diesem pom als wenn Sie ursprünglich definiert wurden hier.
Was ist der Unterschied zwischen der Lösung oberhalb und einfache Abhängigkeit pom ohne import
Bereich (ich sah die letztere als "Abhängigkeiten Gruppierung")? Der einzige Unterschied ist, dass solche "gruppiert" - Abhängigkeiten haben eine niedrigere Priorität beim auflösen von Abhängigkeiten Vorrang?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nur importieren verwaltet Abhängigkeiten. Das heißt, Sie können nur import anderen POMs in die
dependencyManagement
Abschnitt des Projekts POM. alsoWas dann passiert, ist, dass alle Abhängigkeiten definiert in der
dependencyManagement
Abschnitt derother-pom-artifact-id
sind Sie in Ihrer POM istdependencyManagement
Abschnitt. Sie können dann darauf verweisen, diese Abhängigkeiten in derdependency
Abschnitt Ihres POM (und alle seine child-POMs), ohne zu zählen eineversion
etc.Aber wenn Sie in Ihrer POM-Sie definieren einfach eine normale Abhängigkeit
other-pom-artifact-id
dann alledependencies
von derdependency
Abschnitt derother-pom-artifact-id
enthalten sind transitiv in Ihr Projekt - ist jedoch die Abhängigkeiten definiert, die in derdependencyManagement
Abschnitt derother-pom-artifact-id
sind nicht vorhanden.Also im Grunde zwei verschiedene Mechanismen verwendet werden, für den Import von/, einschließlich der zwei verschiedene Arten von Abhängigkeiten (verwaltet Abhängigkeiten und normale Abhängigkeiten).
Gibt es eine gute Seite auf der maven-Webseite, die erklären kann, weit besser als ich es kann, Management von Abhängigkeiten in Maven und es enthält auch spezifische Informationen über Import-Abhängigkeiten.
pom
A ist Elternteil vonpom
B, kann man statt B in Projekt A dependency management mit Rahmenimport
?... <dependencies> <dependency> <groupId>${project.groupId}</groupId> <artifactId>pomlib-lib</artifactId> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>pomlib-war</artifactId> <type>war</type> </dependency> </dependencies> </project>
TROCKEN-und Mager-KriegKönnen Sie nicht ein
pom
Art-Projekt als einesimple dependency
in einem anderen Projekt. (Gut, das können Sie, aber es wird nicht alles, was nützlich). Es kann nur eineparent-child
Beziehung. Dies ist im wesentlichenmanaging dependency through inheritance
.import
Spielraum fürpom
Art Abhängigkeit in<dependencyManagement>
Abschnitt können Sie erreichen das äquivalent vonmultiple inheritance
.Könnten Sie haben verschiedene
poms
- jedermanaging
eine Reihe von damit zusammenhängenden Abhängigkeiten. Die Projekte, die diese verwenden konntenimport
diesepoms
und geben Sie dann die Abhängigkeiten, die Sie benötigen, ohne sich sorgen über die version. Dies ist im wesentlichen derbill of materials
- Konzept, dargestellt in den angegebenen links von @DB5.Dies hilft
parent poms
komplexe multi-Modul-Projekte aus immer zu groß und unhandlich.Sind zwei Begriffe, die sehr ähnlich zu Objekt-orientierten Programmier-Paradigma, wird Ihnen helfen, die Frage zu beantworten:
Den dependencyManagement Abschnitt nur aus, erklärt die Abhängigkeiten und Ihre details in das aktuelle Projekt - der Zweck ist die Verwaltung der details und die Weiterverwendung in anderen Projekten, die entweder über die Vererbung (Eltern) oder importieren (Umfang). Das ist wie bei der Deklaration einen Datentyp im Programm und machen es verfügbar für Gebrauch.
Den Abhängigkeit Abschnitt definiert die tatsächliche Nutzung der Abhängigkeiten im Projekt, Optional Erben die details (D. H., version, etc.) die Abhängigkeiten deklariert unter dem dependencyManagment. Das ist, warum Sie müssen die fehlenden Abhängigkeiten, wenn Sie nur legen Sie Sie in dependencyManagment. Dies ist Analog zur Instanziierung einer variable die Instanz eines Datentyps in einem Programm, wo es benötigt wird.