2009-07-09 13 views
12

Ich habe einen Super Pom definiert, in dem ich ein "Ressourcen" Verzeichnis für Ressourcen angeben. In einem meiner Projekte erweitert mein Pom diesen Superpom, und ich möchte eine zusätzliche Ressource hinzufügen. Ich habe versucht:Hinzufügen zusätzlicher Ressourcen zu einem Maven Pom

<resources> 
     <resource> 
      <targetPath>/</targetPath> 
      <directory>additionalDir</directory>     
     </resource> 
    </resources> 

Aber das führt zu nur additionalDir in den Ressourcen zu sein und beinhaltet nicht die Ressourcen des Super-pom. Gibt es eine Möglichkeit, die Ressourcen des Super Pom zu erweitern?

Antwort

14

Das von Ihnen beschriebene Verhalten wird erwartet.

Denken Sie daran, dass Ihr Super POM von Maven default POM erbt und ziemlich jedes Plugin, das Sie in Ihrem Pom definieren, überschreibt effektiv die Einstellung in der Standard-POM. Um beispielsweise die Standardressource zu filtern, müssen Sie den Pfad in Ihrem POM angeben. Sie tun dies:

<resources> 
    <resource> 
    <directory>src/main/resources</directory> 
    <filtering>true</filtering> 
    </resource> 
</resources> 

Nicht diese:

<resources> 
    <resource> 
    <filtering>true</filtering> 
    </resource> 
</resources> 

Das Standardverzeichnis nicht sprudeln für Sie, auch wenn Sie es dort angegeben haben. Es könnte einen speziellen MOJO geben, der es für dich macht, aber ich konnte keinen finden.

+0

danke für die Klärung. –

+0

Ich frage mich, wie das die Frage des op beheben? Würdest du es bitte klarer machen? Wo sollte man irgendwelche Änderungen vornehmen? – Jaskey

3

Siehe build-helper-maven-plugins usage Seite.

+0

Das funktioniert, es ist ein wenig unangenehm, die ' $ {project.outputDirectory}' und ' true' die nicht einmal dokumentiert ist (aber funktioniert). – ggb667

0

Ja, maven überschreibt die Ressourcen des übergeordneten POM, wenn der neue Ressourcenabschnitt neu definiert wird.

jedoch eine einfache Möglichkeit, Ressourcen hinzuzufügen, ist zu

  1. Entfernen Sie den Abschnitt Ressourcen aus dem POM
  2. zeigen die effektive POM
  3. Kopieren Sie die Ressourcen aus dem effektiven POM in Ihr Projekt
  4. Ersetzen Sie absolute Pfade durch relative
  5. Fügen Sie Ihre zusätzlichen Ressourcen hinzu
Verwandte Themen