2010-05-07 8 views
7

Le problème est que j'essaye de construire un projet qui a dans ses ressources un fichier build.xml. Fondamentalement, je package mon projet en tant que pot avec Maven2, puis j'utilise fourmi installer pour installer mon projet.Avec Maven, comment empêcher Maven de filtrer certaines propriétés mais d'en autoriser d'autres?

Il existe une propriété dans le fichier build.xml que j'ai besoin de filtrer appelée build.date, mais il y a d'autres propriétés que je ne veux pas filtrer, comme $ {basedir}, car elle est utilisée par la fourmi installateur mais est remplacé par la variable basedir de Maven. Donc, je dois en quelque sorte dire à Maven de filtrer $ {build.date}, mais pas $ {basedir}.

J'ai essayé de créer un fichier de propriétés comme un filtre avec « basedir = $ {basedir} » comme l'une des propriétés, mais je reçois l'erreur suivante:

Résolution expression: « $ {basedir} »: Détecté le cycle d'expression récursif suivant: [basedir]

Toutes les suggestions seraient grandement appréciées.

Merci,

B.J.

Répondre

7

A ma connaissance, ce n'est pas possible, vous ne pouvez pas empêcher maven de filtrer une propriété donnée. Donc, soit:

  • ne pas utiliser les propriétés Maven comme ${basedir} dans votre build.xml (si cela est possible)
  • ne pas utiliser le filtrage Maven, mais utiliser le plugin Maven AntRun pour remplacer le ${build.date} et seulement cela la propriété (voir this answer)
  • modifier le paramètre delimiters du plug-in des ressources et utiliser par exemple @[email protected] au lieu de ${build.date} dans votre build.xml

    <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.4.2</version> 
        <configuration> 
        <useDefaultDelimiters>false</useDefaultDelimiters> 
        <delimiters> 
        <delimiter>@</delimiter><!-- for Ant-like tokens style --> 
        </delimiters> 
        </configuration> 
    </plugin> 
    
+0

Merci encore pour l'aide. La 3ème solution était ma solution de choix. Je devais ajouter false Benny

+0

@Benny Ah oui, oublié à ce sujet (j'ai mis à jour ma réponse en conséquence). –

+0

@Benny BTW, il est généralement logique de [aussi upvote une réponse acceptée] (http://meta.stackexchange.com/questions/686/accepting-answer-without-upvoting);) –

Questions connexes