[Ant] Rajouter une ligne en en-tete dans un fichier

Rajouter une ligne en en-tete dans un fichier [Ant] - Java - Programmation

Marsh Posté le 15-02-2006 à 12:01:49    

Je cherche, via une tache Ant, a rajouter une ligne en debut de fichier, a tout un ensemble de pages JSP (plutot que de le faire manuellement sur x dizaines de fichiers).  
 
Probleme : je ne vaois pas du tout comment !!  
J'ai pense un moment a utiliser <concat> couple a un <fileset> (boucle sur une liste de fichiers), mais l'utilisation de ces 2 balises correspond en fait (et tout naturellement) a la concatenation de plusieurs fichiers !!!
 
Comment faire ?  
 
Merci d'avance de votre aide.  
 
 
 
 

Reply

Marsh Posté le 15-02-2006 à 12:01:49   

Reply

Marsh Posté le 15-02-2006 à 14:44:51    

ok, donc tu veux ajouter un include "header", hein ?
utilise sitemesh.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-02-2006 à 15:20:26    

the real moins moins a écrit :

ok, donc tu veux ajouter un include "header", hein ?
utilise sitemesh.


 
Pas exactement mais presque :  
Exemple de ce que j'ai en debut de fichier :  
"<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
(etc)
"
 
et moi je veux rajouter une ligne de taglib en debut de fichier JSP :  
"<%@ taglib uri="/tags/autre-tag" prefix="tag" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
(etc)
"
 
Alors je me demande si, pour faire cette modification -mineure- dans x dizaines de fichiers, il est necessaire d'utiliser un framework en entier, et si ant ne sait pas le faire. Apres tout, j'ai bien reussi a modifier des balises en remplacant des expressions regulieres !! (balise "<replaceregexp>" ).  

Reply

Marsh Posté le 15-02-2006 à 15:39:52    

Suis je bete ! Je viens d'ecrire moi meme la solution ...  :)  
 
En fait il suffit d'ecrire :  
"
<fileset dir="./WEB-INF/pages/" id="pages">
 <include name="**/Login_secured.jsp"/> <!-- fichier de test -->
 <exclude name="**/*.html"/>
    <exclude name="**/*.htm"/>
</fileset>
 
(...)  
 
<replaceregexp match="taglib" replace="taglib uri=&quot;/tags/struts-bean&quot; prefix=&quot;bean&quot;%&gt;&#10;&lt;%@ taglib" flags="-i" byline="false">  
     <fileset refid="pages"/>  
</replaceregexp>  
"
 
L'astuce ? on ne fait marcher le remplacement de l'expression REGULIERE qu'UNE SEULE FOIS (byline="false" ), et pas autant de fois que l'expression de "match" est identifiee dans le fichier).  
 
Point faible : il faut qu'il y ait AU MOINS UNE FOIS la balise "<%@ taglib .../>" dans le fichier JSP. Sinon, je l'ai dans l'os.  
 
 

Reply

Marsh Posté le 15-02-2006 à 15:47:24    

hehe
effectivement dans ce cas sitemesh ne t'apporterait rien, par contre, j'espere que tu fais ça une fois pour toutes... sinon
- tu perds l'outillage (auto completion etc dans ton editeur)
- ça n'a probablement pas de sens de declarer ttes tes taglibs sur toutes tes pages
- quel est l'interet de declarer ta taglib struts "à la main" malgré tout ?
...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-02-2006 à 16:15:21    

the real moins moins a écrit :

hehe
effectivement dans ce cas sitemesh ne t'apporterait rien, par contre, j'espere que tu fais ça une fois pour toutes... sinon
- tu perds l'outillage (auto completion etc dans ton editeur)
- ça n'a probablement pas de sens de declarer ttes tes taglibs sur toutes tes pages
- quel est l'interet de declarer ta taglib struts "à la main" malgré tout ?
...


 
J'ai trouve encore mieux :  
"
<replaceregexp match="" replace="taglib uri=&quot;/tags/struts-bean&quot; prefix=&quot;bean&quot;%&gt;&#10;&lt;%@ taglib" flags="-i" byline="false">  
"
Donc des qu'il ne trouve rien (au debut du fichier), il remplace en mettant cette nouvelle taglib. Pourquoi n'y ai je pas pense avant ?  
 
Pourquoi ajouter une taglib en debut de TOUS les fichiers ? Nous avons simplement une application web, qu'il nous faut integrer dans un portail WebSphere (il faut la "porletiser" : car un portail possede des portlets). Or, pour que l'affichage dans une portlet de la page JSP se fasse correctement, il nous faut declarer une taglib en plus.  

Reply

Marsh Posté le 15-02-2006 à 16:20:02    

meme si elle est pas utilisée dans les pages?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-02-2006 à 16:40:42    

the real moins moins a écrit :

meme si elle est pas utilisée dans les pages?


 
j'avoue que, par faineantise, je n'ai pas forcement envie de traiter les cas particuleirs ...  

Reply

Marsh Posté le 15-02-2006 à 17:41:08    

ouè mais bon, tu le fais une fois et tu gardes tes fichiers comme ça quoi, tu ne fais pas ça au build time, quand meme ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 15-02-2006 à 17:54:47    

the real moins moins a écrit :

ouè mais bon, tu le fais une fois et tu gardes tes fichiers comme ça quoi, tu ne fais pas ça au build time, quand meme ?


 
Non, une et une seule fois.  

Reply

Marsh Posté le 15-02-2006 à 17:54:47   

Reply

Marsh Posté le 15-02-2006 à 17:55:33    

bon ça va alors :o
mais je vois pas l'interet de le faire dans Ant alors :D


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed