...
- Si ce n'est déjà fait, mettre en place un espace de BUILD qui soit différent de la production.
- Créer dans cet espace un répertoire spécifique pour l'application (ici nommé annuaire2). Et dans celui-ci un répertoire "custom".
- Y construire une hiérarchie de répertoires contenant vos fichiers personnalisés. En voici un exemple (les éléments utiles sont en rouge):
Dans le répertoire WEB-INF, vous aurez le "porlet.xml" personnalisé.
Bloc de code |
---|
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
<portlet>
<portlet-name>${portlet.name}</portlet-name>
<display-name xml:lang="fr">esup-annuaire2</display-name>
<portlet-class>javax.portlet.faces.GenericFacesPortlet</portlet-class>
<!-- if you don'nt need mobile, you can change this first page to
/stylesheets/desktop/welcome.xhtml -->
<init-param>
<name>javax.portlet.faces.defaultViewId.view</name>
<value>/stylesheets/home.xhtml</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
</supports>
<supported-locale>fr</supported-locale>
<supported-locale>en</supported-locale>
<portlet-info>
<title>${portlet.name}</title>
<short-title>${portlet.name}</short-title>
<keywords>esup-annuaire2</keywords>
</portlet-info>
</portlet>
</portlet-app>
|
Dans le répertoire properties, vous aurez le fichier config.properties de l'application personnalisé.
- Depuis ce répertoire, lancer un script avec les commandes suivantes (ici avec l'application esup-annuaire2le trunk):
Bloc de code |
---|
svn co https://subversion.cru.fr/esup-annuaire2/trunk/esup-annuaire2
zip -r packages/esup-annuaire2.zip esup-annuaire2/
rm -rf esup-annuaire2/
|
- puis lancer un autre script avec les commandes suivantes:
Bloc de code |
---|
ant init
cd=`pwd`
cd annuaire2
mvn clean install
cd esup-annuaire2-web-jsf-mixed/
mvn -DProduction=true clean package
cd /home/tomcat/portail/BUILD/esup-package
ant portlet.deploy -DportletApp=/home/tomcat/portail/BUILD/applis/annuaire2/annuaire2/esup-annuaire2-web-jsf-mixed/target/esup-annuaire2-0.1.0.war
cd $cd
|
Commentaires:
La cible "init" va partir du .zip construit par le script précédent pour y incorporer les fichiers que vous avec personnalisés, elle est constituée ainsi: Bloc de code |
---|
<target name="init" depends="unzip">
<copy overwrite="true" todir="${appli.base}/">
<fileset dir="custom" includes="**/*" />
</copy>
</target>
<target name="unzip">
<delete dir="${appli.base}"/>
<delete dir="${appli.tmp}"/>
<mkdir dir="${appli.tmp}"/>
<unzip src="${appli.packages}/${appli.package-name}" dest="${appli.tmp}" />
<move todir="${appli.base}/">
<fileset dir="${appli.tmp}/${appli.name-version}"/>
</move>
</target> |
Les propriétés utilisées sont celles-ci: Bloc de code |
---|
appli.name-version=esup-annuaire2
appli.package-name=${appli.name-version}.zip
appli.name=annuaire2
appli.root=/home/tomcat/portail/BUILD/applis/${appli.name}
appli.base=/home/tomcat/portail/BUILD/applis/${appli.name}/${appli.name}
appli.tmp=${appli.root}/temp
appli.packages=${appli.root}/packages
|
La commande Maven "clean install" va créer un répertoire "target", compiler les différents modules de l'application
On se place ensuite dans le module web de l'application.
La commande Maven -DProduction=true clean package réalise la construction du ficher WAR.
La suite, c'est l'assemblage dans un nouveau web.xml du web.xml livré dans le WAR avec le fichier portlet.xml.