2010-11-23 37 views
3

J'ai une application Web existante qui crée un fichier .war. Je veux convertir la structure de répertoire aux conventions de maven. Et je suis un peu perdu.Convertir la structure de fichier d'application web existante en structure de fichier maven?

En particulier, le .war actuel, créé par une cible ant, ne copie pas dans le fichier .war dans le sous-arbre du répertoire site/statique; ceci est copié par une autre cible différente,. Mais si je veux lancer, par exemple, une jetée de maven (et je le fais!), J'ai besoin de copier site/statiques/**/. à quelque part dans le répertoire target de maven. Je ne sais pas comment faire cela étant donné les conventions de maven.

Merci.

est ici la structure de répertoire existant comme (désolé) forme capture d'écran Eclipse:

+0

Qu'y a-t-il de si particulier dans le dossier site/statique? Je suppose que site/jsp se termine au niveau racine de votre fichier WAR (contenant les JSP). Êtes-vous en train de dire que les fichiers dans le site/statiques proviennent d'un endroit externe, et mis dans la structure du répertoire ci-dessus par l'autre cible fourmi? Aussi, je vois que vous avez un dossier ear (pour générer un fichier ear à déployer sur un serveur JEE?), Et un dossier de module (générant un EJB JAR?) – ddewaele

Répondre

6

Vous mieux suivre la structure maven de répertoire par défaut ou si vous insistez pour utiliser votre propre, vous devez configurer votre Maven. fichier pom respectivement.

La structure de répertoire du plugin de guerre Maven par défaut est expliquée here et son utilisation here.

Par défaut, $ {basedir}/src/main/webapp est l'endroit où vous devriez placer les fichiers jsp et les autres fichiers statiques ou dynamiques qui devraient aller à la racine du répertoire war. Pour changer cette structure par défaut, vous devez ajouter une configuration à votre pom. Jetez un oeil à différentes options disponibles au this page et au this page pour un exemple de leur utilisation.

Au lieu de copier votre fichier statique externe avec un script que vous pouvez utiliser suivant la mise en vous pom:

<plugins> 
    ... 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <configuration> 
     <webResources> 
     <resource> 
      <directory>/absolute/path/to/external/static/</directory> 
     </resource> 
     </webResources> 
    </configuration> 
    </plugin> 
    ... 
</plugins> 

Directory peut être un chemin par rapport à vous pom ou un chemin absolu (ce qui vous fait pom non portable) ou être paramétré en utilisant $ {xxx}