Plutôt Déploiement en Production
Utilisation d'un "profile" Maven nommé "Production"
Ce "profile" va nous permettre de:
- réaliser un filtre sur les fichiers de configuration de manière à substituer les variables réelles de production à celles qui ont été préparées.
- produire un fichier WAR déployable en mode servlet et/ou portlet grace à la tâche ant "portlet.deploy" livrée avec le portail Esup.
Voici un exemple de code:
<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> <defaultGoal>package</defaultGoal> <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-${misc.version}</warName> </configuration> </plugin> </plugins> </build> </profile>
Dans l'environnement de production, lancer Maven pour ce "profile":
mvn -DProduction=true clean package
On peut alors lancer la tâche ant "portlet.deploy" qui va assembler dan sun nouveau web.xml le web.xml livré dans le WAR avec le fichier portlet.xml.
L'application pourra alors fonctionner dans le portail en mode servlet et en mode portlet.
Voici la commande à lancer (depuis l'environnement Esup-package:
ant portlet.deploy -DportletApp=...monFichierWar...
Il est bien sûr nécessaire de réaliser un fichier "chanpub" pour que la portlet apparaisse au bon endroit et avec les bon droits associés dans le portail.