2010-06-09 7 views
12

(auch auf Maven-Benutzer veröffentlicht)Maven 2 <resources> Erbe (Eltern -> Kind-Projekt)

fragen sich, ob jemand etwas Licht auf Vererbung der Elemente in pom.xml Schuppen kann die Verarbeitung und die WAR-Ressourcen bezieht Plugin.

Die Dokumentation für den Pom [1] hat Ressourcen aufgelistet unter "Elemente im POM, die zusammengeführt werden". Einige Experimente auf meinen lokalen Poms gegen Maven 2.2.1 scheinen dieses Verhalten nicht zu zeigen. Was ich sehe ist, dass es so aussieht, als ob es von untergeordneten Projekten geerbt wird (in einem Multi-Modul-Build), aber wenn eines dieser Projekte einen eigenen Block hat, ersetzt es den übergeordneten, nicht zusammengelegten. Ist das korrekt?

Beispiel:

parent-pom.xml 
| 
|-> child-pom.xml 

Die folgenden Werke, wie ich erwarten würde, mit Dateien in dev nicht in einem abschließenden IST enthalten.

Eltern-pom.xml

<resources> 
    <resource> 
     <directory>src/main/resources</directory> 
     <excludes> 
      <exclude>${dev-config.path}</exclude> 
     </excludes> 
    </resource> 
<resources> 

kinder pom.xml

<resources> 
    <resource> 
     <directory>src/main/resources</directory> 
     <excludes> 
      <exclude>${dev-config.path}</exclude> 
     </excludes> 
    </resource> 
    <resource> 
     <directory>src/main/rules</directory> 
    </resource> 
    <resource> 
     <directory>src/test/rules</directory> 
    </resource> 
</resources> 

Die dem Kind folgende Änderung (jede Erklärung für src/main/resources entfernen) in src zu führen scheint,/main/resource wird nicht in Prozessressourcen berücksichtigt und erbt nicht wie erwartet vom übergeordneten Element.

kinder pom.xml

<resources> 
    <resource> 
     <directory>src/main/rules</directory> 
    </resource> 
    <resource> 
     <directory>src/test/rules</directory> 
    </resource> 
</resources> 

[1] http://maven.apache.org/guides/introduction/introduction-to-the-pom.html s

Antwort

10

der Tat, das ist, was die Dokumentation sagt. Aber ich bestätige, dass die Maven-Vererbung Ressourcen außer Kraft setzt, anstatt sie hinzuzufügen. Dies wird tatsächlich in MNG-2751 und indirekt in MNG-2027 erfasst, die Sie möglicherweise stoßen möchten.

TBH, Ich bin sehr neugierig zu sehen, was die Maven Leute dazu sagen werden (Ich bin persönlich mit dem aktuellen Verhalten zufrieden, ich möchte nicht, dass Kinderpoms durch spezifische Bedürfnisse "verschmutzt" werden Ausschlüsse in einer Hierarchie) und das Ändern dieses Verhaltens könnte viele Projekte zerstören.

+0

Ich bin ok mit Ersatz, obwohl es einige Dinge wie Verwaltung mit weniger eleganten Profilen macht. Wir haben mit Variablen gearbeitet, die in hineingereicht werden, aber es ist ein wenig unrein. – jayshao

+0

@jayshao Beachte, dass ich nur eine persönliche Meinung ausspreche, ich behaupte nicht, die Wahrheit zu verhaften :) Ich werde es mir ansehen Das Feedback zur Maven-Nutzerliste, bin ich jetzt neugierig. –

+0

@ pascal-thivent yeah, habe keine Antwort zurückfliegen sehen, aber was wir haben, ist für jetzt machbar, obwohl es einfacher für Kinder POMs zu brechen, als ich möchte – jayshao

Verwandte Themen