2009-11-23 4 views
42

J'essaie d'ajouter un filtrage au fichier de contexte de l'application, qui se trouve dans le répertoire WEB-INF.Filtrage des fichiers Maven dans WEB-INF

J'ai le fichier à filtrer (xmlgateway-context.xml) dans le dossier/src/main/resources.

je les fichiers propriétés (config-e05.properties) dans le dossier src/main/filtres

Et je le POM mis en place comme suit:

<!-- environment profiles --> 
<profiles> 
<profile> 
    <id>e04</id> 
    <properties> 
    <targetenv>e04</targetenv> 
    </properties> 
</profile> 
<profile> 
    <id>e05</id> 
    <properties> 
    <targetenv>e05</targetenv> 
    </properties> 
</profile> 
</profiles> 

<!-- build settings (filtering) --> 
<build> 
<filters> 
    <filter>src/main/filters/config-${targetenv}.properties</filter> 
</filters> 
<resources> 
    <resource> 
    <targetPath>WEB-INF</targetPath> 
    <filtering>true</filtering> 
    <directory>src/main/resources</directory> 
    </resource> 
</resources> 
</build> 

Cela MVN installer correctement , mais quand j'ouvre le fichier war de sortie, je m'attendais à ce que le fichier xmlgateway-context.xml soit dans le répertoire/WEB-INF, mais il finit dans le dossier/WEB-INF/classes/WEB-INF.

Comment puis-je obtenir ce fichier au bon endroit.

Sinon, je peux mettre le contexte de l'application dans un emplacement différent et y faire référence.

+0

J'ai ajouté le maven- 2 étiquette, je suppose que cela ne vous dérange pas. – Bozho

Répondre

85
<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-war-plugin</artifactId> 
     <version>2.0.2</version> 
     <configuration> 
      <webResources> 
       <resource> 
        <directory>${basedir}/src/main/webapp/WEB-INF</directory> 
        <filtering>true</filtering> 
        <targetPath>WEB-INF</targetPath> 
        <includes> 
         <include>**/xmlgateway-context.xml</include> 
        </includes> 
       </resource> 
      </webResources> 
     </configuration> 
    </plugin> 
</plugins> 

Ajoutez ce qui précède à votre fichier pom.xml. EDIT: Juste pour expliquer ce que fait la conf précédente. Avec ce ajouté, mvn va filtrer les fichiers sous src/main/webapp/WEB-INF et en particulier filtrer les fichiers inclus xmlgateway-context.xml et après le filtrage, il va pousser les fichiers dans le dossier WEB-INF (c'est ce que le tag dit).

Mettre à jour si quelque chose n'est pas clair.

+0

Couper et coller et fonctionne comme décrit. Ta beaucoup. – Xetius

+5

Juste une observation à ajouter, la version 2.4 ne semble pas fonctionner avec cette configuration, la plus récente et fonctionnant avec ce paramètre que j'ai trouvé était de 2,3, bravo. –

+0

merci @tomasz_kusmierczyk pour cette observation –

4

vous devez configurer le filtrage via le maven war plugin: checkout these examples.

+4

Aurait accepté cela aussi si je pouvais grâce à des liens, mais @peakit gagne en raison de couper et coller la paresse pour moi. – Xetius

-1

Placez le fichier xmlgateway-context.xml dans src/main/webapp/WEB-INF et configurer comme ceci:

<build> 
    <filters> 
     <filter>src/main/filters/config-${targetenv}.properties</filter> 
    </filters> 
    <resources> 
     <resource> 
       <filtering>true</filtering> 
       <directory>src/main/webapp/WEB-INF</directory> 
     </resource> 
    </resources> 
</build> 
0

Avec filteringDeploymentDescriptors la valeur true

 <build> 
     <finalName>web-project-name</finalName> 
     <filters> 
      <filter>src/main/resources/app.properties</filter> 
     </filters> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
     </resources> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
        <compilerArguments> 
         <endorseddirs>${endorsed.dir}</endorseddirs> 
        </compilerArguments> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
        <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors> 
       </configuration> 
      </plugin>   
     </plugins> 
    </build> 
Questions connexes