2010-11-24 41 views
4

J'ai des fichiers .mxt & arbitraires que je dois ajouter dans le dossier META-INF à l'intérieur de l'oreille elle-même. La construction est faite en utilisant maven2.2.1. Il suffit d'ajouter ces fichiers sous $ {basedir}/src/main/application/META-INF/fonctionne bien, mais cela ne correspond pas à mes besoins. Y a-t-il un autre moyen de faire une telle chose? J'ai essayé:Ajouter des fichiers .mf et .xml dans le répertoire META-INF à l'intérieur d'un EAR construit par Maven

<build> 
<resources> 
     <resource> 
      <directory>G:/WS/vermeg/ear2/XML's</directory> 
      <targetPath>META-INF</targetPath> 
     </resource> 
    </resources> 
</build> 

mais cela n'ajoute pas mes fichiers xml sous le fichier EAR lui-même.

J'ai aussi essayé:

<configuration> 
      <earSourceDirectory>G:\WS\vermeg\ear2\XML's\</earSourceDirectory> 
... 
</configuration> 

cette commande ajouter mes fichiers à l'intérieur de l'oreille, mais pas dans le META-INF dans l'oreille (myEar.ear/META-INF).

Toute aide est la bienvenue, et serait génial. Thnx.

Nacef,

+0

Quel est le problème avec src/main/application ** exactement? – ggb667

+0

Je suppose que le scénario est des fichiers situés en dehors du répertoire de l'application. Dans mon cas, ils sont générés dans un autre répertoire et j'ai dû automatiser leur déplacement. – peater

Répondre

1

Je l'ai. Thanx Jgiff. J'ai utilisé en effet le plugin maven-resources, spécifié où se trouvent mes xml et que je voulais qu'ils soient copiés dans le dossier META-INF du projet lors de la phase de "validation", c'est important. Mon pom ressemble en quelque sorte comme ça maintenant:

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.4.3</version> 
      <executions> 
      <execution> 
       <id>copy-resources</id> 
        <phase>validate</phase> 
        <goals> 
        <goal>copy-resources</goal> 
        </goals> 
    <configuration> 
     <outputDirectory>G:\WS\vermeg\ear2\src\main\application\META-INF\</outputDirectory> 
      <resources> 
      <resource> 
       <directory>G:\WS\vermeg\ear2\XML's</directory> 
       <filtering>true</filtering> 
      </resource> 
      </resources> 
      </configuration> 
      </execution> 
      </executions> 
     </plugin> 

Lors de l'exécution d'une installation propre mvn, Maven exécute la phase « validate » d'abord si la copie est faite avant l'emballage de l'oreille. C'était réussi.

0

Je vais ajouter ce détail supplémentaire pour quiconque rencontre ce problème en utilisant IBM Rational Application Developer (RAD) pour générer des fichiers de stratégie et de liaison pour le déploiement vers WebSphere Application Server (WAS).

Dans notre cas, nous avons généré des fichiers de liaison de politique (policyAttachments.xml et wsPolicyServiceControl.xml) en utilisant les outils RAD pour les pièces jointes de jeu de règles. Par défaut, ils sont placés dans un dossier META-INF dans la racine du projet EAR. S'il y a un moyen pratique de modifier ce comportement par défaut pour toujours le mettre en application/META-INF, je ne l'ai pas rencontré. Mais les méthodes ci-dessus fonctionnent très bien dans RAD avec m2e pour s'exécuter localement et construire des fichiers EAR.

Voici la section de mon pom utilisé pour copier ces fichiers:

 <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>2.4.3</version> 
     <executions> 
      <execution> 
       <id>copy-resources</id> 
       <phase>validate</phase> 
       <goals> 
        <goal>copy-resources</goal> 
       </goals> 
       <configuration> 
        <outputDirectory>${basedir}\src\main\application\META-INF\</outputDirectory> 
        <resources> 
         <resource> 
          <directory>${basedir}\META-INF</directory> 
          <filtering>true</filtering> 
         </resource> 
        </resources> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin>