2010-12-14 9 views
7

Quando Maven crea un barattolo, inserisce un pom.xml in META-INF /// pom.xml. Questo è il pom originale del manufatto. Nessuna variabile è espansa o ereditata e nessuna dipendenza ereditata è elencata. Ciò rende le informazioni del vaso di produzione dipendenti dall'ambiente di costruzione.come controllare il pom.xml all'interno del vaso costruito da Maven?

Come si può configurare il pom all'interno del vaso? La migliore sarebbe una configurazione del plugin maven-jar.

risposta

6

Avevo un requisito simile, poiché volevo ottenere tutte le informazioni che appartengono al genitore pom.xml. In altre parole, volevo avere, oltre al "raw" pom.xml, il efficace pom all'interno del JAR generato.

L'idea è di utilizzare il plugin help:effective-pom e l'obiettivo durante la generazione del JAR, e metterlo con il pom.xml. Questo viene fatto con questa configurazione:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-help-plugin</artifactId> 
    <version>2.1.1</version> 
    <executions> 
     <execution> 
      <phase>generate-resources</phase> 
      <goals> 
       <goal>effective-pom</goal> 
      </goals> 
      <configuration> 
       <output>${project.build.outputDirectory}/META-INF/maven/${project.groupId}/${project.artifactId}/effective-pom.xml</output> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

(source)

+0

Questo è quello che volevo veramente :-) Solo mi piacerebbe sbarazzarsi del pom cruda (che non riesco a vedere facilmente domanda collegata) o ritagliarlo un po '. – openCage

+2

lettura di più di domande e risposte collegate Ho scoperto che è possibile sopprimere il pom std nel plugin maven-jar falso e denominare l'effettivo pom pom pom. – openCage

Problemi correlati