2010-11-23 6 views
3

Lorsque je construis une bibliothèque JAR en utilisant Maven 2 (version 2.0.9 ou 2.2.1), la pom.xml de la bibliothèque est copié dans le répertoire META-INF/maven/[groupId]/[artifactId]/ du JAR.Ajouter le pom.xml efficace dans le répertoire META-INF

Cependant, dans mon cas, le pom.xml a un parent, et je préférerais obtenir le effective-pom au lieu du fichier pom.xml d'origine (ou éventuellement, ayant tous les deux).

Y a-t-il un moyen de faire cela?

Répondre

4

Vous pouvez générer le pom.xml efficace au cours du cycle installation

<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}\effective-pom.xml</output> 
     </configuration> 
     </execution> 
    </executions> 
</plugin> 

Mais pour copier cette efficacité-pom.xml sous META-INF/maven/[groupId]/[artifactId]/ répertoire du fichier JAR, vous devrez écrire un mojo Jar personnalisé (juste en prolongeant org.apache.maven.plugin.jar.JarMojo) parce que le code qui copie le pom.xml à META-INF est codé en dur dans org.apache.maven.archiver.MavenArchiver (ligne 487) (et je pense qu'il n'y a aucun moyen apparent de définir/remplacer ce comportement de pom.xml).

+1

Merci. Notez que si vous configurez ce plugin avec ' $ {project.build.outputDirectory}/META-INF/maven/$ {project.groupId}/$ {project.artifactId} /effective-pom.xml', alors le ' Le fichier efficace-pom.xml' sera mis à la bonne place dans le fichier JAR! – romaintaz

+0

@romaintaz +1 Merci d'avoir fourni les informations sur $ {project.build.outputDirectory}/META-INF/maven/$ {projet.groupId}/$ {project.artifactId} /effective-pom.xml. :) – dira

Questions connexes