Mot clé: Maven
Problème Jetty / Maven sous Windows
par David Pilato le fév.24, 2010, sous la catégorie Maven
Lorsqu’on souhaite lancer une WebApp avec le plugin Jetty sous Maven 2 depuis un PC sous windows on obtient une erreur référencée sous JIRA #JETTY-1063 :
java.net.URISyntaxException: Illegal character in path at index 18: file:/C:/Documents and Settings/USER/.m2/repository/org/mortbay/jetty/jetty-maven-plugin/7.0.0.1beta2/jetty-maven-plugin-7.0.0.1beta2.jar
Ce problème n’est résolu que sous Maven 3. Pour ceux qui souhaitent rester sous Maven 2 (Maven 3 est encore en version alpha), il faut modifier l’emplacement de la repository pour éviter le souci du caractère ESPACE présent dans le chemin C:\Documents and settings\USER\.m2\repository (chemin par défaut).
Il est fortement recommandé de déplacer le répertoire repository dans c:\maven2\repository par exemple et modifier ensuite le fichier settings.xml qui se trouve normalement dans C:\Documents and settings\USER\.m2 ou (moins bien) dans votre répertoire d’installation de maven sous /conf.
<localRepository>/c:/maven2/repository</localRepository>
Ainsi, Maven ira chercher les libs dans un répertoire sans espaces…
Publication de documentation fonctionnelle avec Maven
par David Pilato le fév.23, 2010, sous la catégorie Maven
Lorsqu’on utilise Maven, se pose souvent la question de génération de documents à intégrer dans le site web généré par Maven.
Au début, j’ai regardé le format APT qui a l’avantage certain de générer du contenu directement consultable sous forme de page Web. Il existe de plus un plugin qui permet de fabriquer un PDF en regroupant les fichiers APT souhaités.
Mais, cela reste un nouveau langage à apprendre pour des équipes fonctionnelles et le format APT est trop limité pour permettre un travail efficace par les équipes de conception ou d’analyse.
Après avoir tourné et viré, testé quelques solutions, j’en suis arrivé à la conclusion que le plus pratique est de laisser les concepteurs utiliser leurs outils office (Microsoft ou oOo) et de transformer ces documents en PDF lors de la fabrication du site.
Pour cela, un petit plugin miracle (jodconverter-maven-plugin) couplé à oOo permet de faire le travail.
Tout d’abord, il faut lancer oOo en mode serveur. Sous Linux, ça se fait comme ça :
/opt/openoffice.org3/program/soffice -headless -accept="socket,host=localhost,port=8100;urp;" -nofirststartwizard
Sous Windows :
"C:\Program Files\OpenOffice.org 3\program\soffice.exe" -accept="socket,host=localhost,port=8100;urp;"
Puis ajouter dans le pom.xml :
<build>
<plugins>
<plugin>
<groupId>com.artofsolving</groupId>
<artifactId>jodconverter-maven-plugin</artifactId>
<version>2.2.3</version>
<inherited>false</inherited>
<configuration>
<sourceDirectory>${basedir}/src/site/docs</sourceDirectory>
<outputDirectory>${project.reporting.outputDirectory}/docs</outputDirectory>
<include>**/*.odt,**/*.odp</include>
<outputFormat>pdf</outputFormat>
<port>8100</port>
</configuration>
<executions>
<execution>
<id>convert</id>
<phase>pre-site</phase>
<goals>
<goal>convert</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Ainsi, lors de la génération du site, tous les documents odt ou odp présents dans le répertoire /src/site/docs et sous-répertoires seront transformés en documents PDF dans le répertoire de sortie du site sous /docs. Les sous-répertoires sont également recréés.
Il ne reste plus qu’à faire des liens vers ces documents générés que ce soit dans site.xml ou dans un fichier APT.
Dans l’exemple suivant, le fichier source MonDoc.odt se trouve dans /src/site/docs/1.
<!-- Extrait du site.xml --> <body> <menu name="Fonctionnel"> <item name="Mon document" href="./docs/1/MonDoc.pdf" /> </menu> </body>
Dans le cadre des projets que je gère, j’ai mis en place Hudson qui me reconstruit toutes les nuits une vision documentaire de mes projets. Ainsi, lorsqu’un concepteur valide dans CVS ou SVN pendant la journée un document, il est automatiquement publié la nuit sur le site Maven correspondant.
Autre intérêt : à chaque livraison (release), une photographie complète de l’état de la documentation au moment de la fabrication des livrables est générée. Il est ainsi possible de retrouver facilement le contexte fonctionnel d’une version particulière…