A relire, compléter
Sommaire :
Utilisation de Maven pour générer le package à distribuer
Maven permet de générer un fichier war directement utilisable dans un serveur d'application Tomcat.
Pour réaliser cette opération, on utilise un "profile" Maven nommé "Production", placé dans le pom.xml du module "vues" de l'application, comme illustré ici:
<profile> <id>Production</id> <activation> <property> <name>Production</name> <value>true</value> </property> </activation> <build> <filters> <filter>src/main/resources/properties/defaults.properties</filter> <filter>src/main/resources/properties/config.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.1</version> <configuration> <webResources> <resource> <filtering>true</filtering> <directory>src/main/webapp</directory> <includes> <include>WEB-INF/web.xml</include> <include>WEB-INF/portlet.xml</include> </includes> </resource> </webResources <warName>esup-blank</warName> </configuration> </plugin> </plugins> </build> </profile>
Ce profile va permettre de construire un fichier war prenant en compte les propriétés décrites dans default.properties, éventuellement recouvertes par celles de config.properties pour la partie src/main/resources. Les fichiers web.xml et portlet.xml seront affectées via le plugin "maven-war-plugin" qui permet aussi de nommer le fichier war résultant.
Le lancement de ce profile est obtenu avec cette commande maven (ou son équivalent avec le plugin Eclipse:
mvn \-DProduction=true \-PProduction \-B clean package
Il faut aussi avoir décrit le packaging comme étantde type war dan s le début du pom.xml en question:
<packaging>war</packaging>
On renforcera la substitution des variables au moment de l'exécution en plaçant ceci dans le fichier "applicationContext.xml":
<context:property-placeholder location="classpath:/properties/defaults.properties,classpath:/properties/config.properties" />
On peut aussi utiliser Maven pour travailler sur un dossier de type "webapps"
Si vous préférez rapatrier localement le projet Maven à la source du développement pour pouvoir intervenir sur les sources et préparer un répertoir de type webappas pour le copier ensuite sur un serveur d'application Tomcat...
Faites un checkout du projet (sur sourceSup par exemple)... Organisez le dans Eclipse comme un projet Maven avec ses modules... utilisez un profile comme celui-ci dans le pom.xml du module "vues" de l'application (après avoir lancé le profile "Production") :
<profile> <id>webConfigure</id> <activation> <property> <name>webConfigure</name> <value>true</value> </property> </activation> <build> <filters> <filter>./../../../../WEB-INF/classes/properties/defaults.properties</filter> <filter>./../../../../WEB-INF/classes/properties/config.properties</filter> </filters> <resources> <resource> <directory>./../../../../WEB-INF</directory> <filtering>true</filtering> </resource> </resources> <defaultGoal>compile</defaultGoal> </build> </profile>