Ich stehe derzeit mit Maven 3 vor dem folgenden Problem, wenn ich versuche, die Site zu erstellen. Ich werde es schätzen, Ihnen dabei behilflich zu sein.Nicht auflösbares Eltern-POM: Beim Aufbau von Maven 3 Project Site
mvn saubere Seite
..........
[INFO] Reactor Summary:
[INFO]
[INFO] Project A ......................................... SUCCESS [15.383s]
[INFO] Project B ......................................... SUCCESS [2.232s]
[INFO] My Site ........................................... FAILURE [0.105s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 24.769s
[INFO] Finished at: Fri Jun 29 14:26:04 AMT 2012
[INFO] Final Memory: 18M/150M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.1:site (default-site) on project site: SiteToolException: Unable to read local module-POM: 1 problem was encountered while building the effective model for my.com:projA:0.1-SNAPSHOT
[ERROR] [FATAL] Non-resolvable parent POM: Could not find artifact my.com:parent-pom:pom:0.1-SNAPSHOT and 'parent.relativePath' points at no local POM @ line 12, column 13
[ERROR] for project my.com:projA:0.1-SNAPSHOT
.............
Zuerst ist hier die Konfiguration:
Apache Maven 3.0.4 (r1232337; 2012-01-17 12:44:56+0400)
Java version: 1.7.0_04, vendor: Oracle Corporation
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.7.4", arch: "x86_64", family: "mac"
Nexus repository: 2.0.6
Die Mutter POM:
<modelVersion>4.0.0</modelVersion>
<name>Parent POM</name>
<groupId>my.com</groupId>
<artifactId>parent-pom</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.1</version>
<configuration>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.4</version>
</plugin>
</reportPlugins>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
Die Aggregation Projekt pom:
<modelVersion>4.0.0</modelVersion>
<name>My Site</name>
<groupId>my.com</groupId>
<artifactId>site</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>my.com</groupId>
<artifactId>parent-pom</artifactId>
<version>0.1-SNAPSHOT</version>
<relativePath/>
</parent>
<modules>
<module>projA</module>
<module>projB</module>
</modules>
Das pom von Projekt A:
<modelVersion>4.0.0</modelVersion>
<name>Project A</name>
<groupId>my.com</groupId>
<artifactId>projA</artifactId>
<version>0.1-SNAPSHOT</version>
<parent>
<groupId>my.com</groupId>
<artifactId>parent-pom</artifactId>
<version>0.1-SNAPSHOT</version>
<relativePath/>
</parent>
Das pom von Projekt B:
4.0.0
<name>Project B</name>
<groupId>my.com</groupId>
<artifactId>projB</artifactId>
<version>0.1-SNAPSHOT</version>
<parent>
<groupId>my.com</groupId>
<artifactId>parent-pom</artifactId>
<version>0.1-SNAPSHOT</version>
<relativePath/>
</parent>
Hier
ist die Struktur des Ordners, in dem ich "mvn sauber site" laufen:
./pom.xml (aggregation project)
./projA/pom.xml (Project A)
./projB/pom.xml (Project B)
Eltern-pom erfolgreich NEXUS-Repository bereitgestellt wird vor der Ausführung von mvn clean site
mit folgendem Befehl mvn deploy -DaltDeploymentRepository=snapshots::default::http://MyServer:8081/nexus/content/repositories/snapshots
Und schließlich das Problem selbst:
Wenn ich mvn clean site
direkt nach der Bereitstellung von Parent-Pom-Site ausgeführt wird, wird erfolgreich erstellt. Wenn ich den Ordner (mit seinem Inhalt) "my" (es enthält das Eltern-Pom) aus dem lokalen Repository (~/.m2/repository) lösche und dann versuche, die Seite mit mvn clean site
zu erstellen, bekomme ich den Fehler beschrieben unter Anfang. Eigentlich lädt Maven den Eltern-Pom von der NEXUS herunter. Ich habe die heruntergeladenen Dateien und Dateien, die nach der Bereitstellung generiert wurden, verglichen und festgestellt, dass nur wenige fehlen, zum Beispiel maven-metadata-local.xml in der Nähe des Ordners "0.1-SNAPSHOT".
Also, wenn ich versuche, den Website-Bau-Job von Jenkins auszuführen, erhalte ich den oben beschriebenen Fehler, weil der Eltern-Pom nicht von der Maschine bereitgestellt wird, auf der Jenkins ausgeführt wird.
Wie kann ich auf dieses Problem oder was ich falsch gemacht habe?
Vielen Dank.
Ich würde den relativen Pfadeintrag Ihrer Module entfernen, weil er leer ist, also wird er nicht benötigt. Können Sie das Bild mit der Ordnerstruktur verbessern Wo ist Ihr Eltern Pom und warum sind die Eltern Pom und die Aggregation Pom verschiedene? – khmarbaise
Ich weiß, dass es möglich ist, verschiedene Aggregator und pa Miete aber es macht das Leben nicht einfacher. – khmarbaise