Bestellung von Maven Multimodul-Projekt erstellen?
Die situation ist, ich habe zwei Maven-multimodule-Projekte mit der gleichen Struktur:
Eltern - Modul 1 - Modul 2
Wenn ich das bauen-Projekt 1, ich sehe, dass Eltern gebaut wird zuerst (die Reihenfolge ist Eltern-> "module1" -> "Modul2"). Jedoch für Projekt 2, Elternteil gebaut wird, bei der letzten (die Reihenfolge wird module1-> "Modul2" ->parent). Warum sind die beiden Projekte haben unterschiedliche build orders? Außerdem, wie kann ich manuell Steuern die build-Reihenfolge?
Update 1:
Beide Eltern Projekte sind einfach POM-Projekte ohne source-code, so kann ich nicht erklären, die bauen, um nach den abhängigkeitsgraphen.
Update 2:
Die parent-POMs sind die gleichen, außer der GAV-und-Kind-Modul Namen:
<?xml version="1.0" encoding="UTF-8"?> <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>Eltern-Gruppe-id</groupId> <artifactId>Eltern-Artefakt-id</artifactId> <version>Eltern-version</version> <Verpackung - >pom,</packaging> <name>Eltern-name</name> <Module> <module>Modul-1</Modul> <module>Modul-2</Modul> </Module> </Projekt>
InformationsquelleAutor der Frage Zhao Yi | 2012-06-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die build-Reihenfolge wird bestimmt durch die Maven Reaktor, das ist ein Mechanismus, der sorgt automatisch für die richtige build order für die multimodule baut durch die Sortierung der Projekte.
Sehen die offizielle Dokumentationwie es funktioniert.
Er sagt:
Können Sie nicht manuell Steuern die Reihenfolge für Erstellung". Wenn Sie die Reihenfolge ändern möchten, müssen Sie änderungen an Ihrem Projekt, die Einfluss auf den Reaktor Sortierreihenfolge.
InformationsquelleAutor der Antwort Kai Sternad
Auf einem hohen Niveau, die build-Auftrag basiert auf einem topologische Sortieren die Modul-dependency-graph.
EDIT: Frage für Sie. Ich verstehe, dass Projekt 1 enthält zwei Module und damit hat das Projekt 2. Aber die Module in Projekt 2 ausdrücklich auf die "übergeordneten" pom als parent? Ich denke, dass vielleicht Ihr Projekt 1 Module explizit erklären das übergeordnete pom, und das Projekt 2-Module nicht. Das würde bedeuten, dass das Projekt 2 "Eltern" ist nicht wirklich ein Elternteil und damit auch nicht gebaut werden, bevor die Module. Das ist meine Vermutung sowieso.
InformationsquelleAutor der Antwort Willie Wheeler
Ich gelebt habe dieses Problem in letzter Zeit mit Centos 7. Ich aktualisiert, maven, 3.5.3 von 3.0.5 und das problem wurde gelöst. Wenn jemand dieses Problem hat, versuchen, dass zuerst.
InformationsquelleAutor der Antwort user2291161