Bonjour à tous et merci d'avance pour votre aide.
Mise en situation: Nous avons beaucoup de tokens à remplacer et très souvent nous ajoutons de nouveaux tokens à remplacer ce qui nous force à ajuster nos scripts et donc à sortir une nouvelle version de nos scripts à chaque nouveau token.
Pour régler ce problème d'attente pour les développeurs voulant un nouveau token, nous avons décidés de mettre l'intelligence du remplacement de token directement dans les projets plutôt que dans nos scripts. C'est une bonne idée sauf que l'on ce heurte à un problème.
Nous utilisons la task replace, comme suit:
Notre fichier "all-tokens.properties" est un fichier concaténé à partir de différents fichiers "tokens.properties" qui sont eux-même des "replacefilterfile" des différents modules intégrés au module que l'on est en train de "construire" lorsque le remplacement de token se fait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <replace dir="${tokenize.dir}" summary="true" replacefilterfile="${build.dir}/all-tokens.properties"> <!-- Excluding binary files and files that should not have tokens replaced --> <exclude name="all-tokens.properties"/> <exclude name="**/*.jar"/> <exclude name="**/*.class"/> <exclude name="**/*.gif"/> <exclude name="**/*.jsp"/> <exclude name="**/*.html"/> <exclude name="**/*.js"/> <exclude name="**/*.css"/> </replace>
Mon problème en détail:
les fichiers tokens.properties et all-tokens.properties sont des replacefilterfile qui contiennent des pairs "token-valeur" qui ressemblent à:
@TOKEN@=valeur1
ce qui signifie que la string @TOKEN@ sera remplacé par la string valeur1. Ce que j'aimerais pouvoir faire c'est d'utiliser une paire "token-valeur" comme suit:
@TOKEN@=${valeur1}
et de faire en sorte que @TOKEN@ soit remplacé par la valeure de la propriété "valeur1" et non pas par la string ${valeur1} comme c'est le cas présentement.
=========
Je vois deux solutions possibles (mais je ne sais pas comment les réaliser):
1) Soit il est possible dans le task <replace> de lui spécifier de remplacer les string de format ${valeur1} par la valeure des propriétés (si elles existent)
ou
2) Je fais un traitement sur mon fichier "all-tokens.properties" pour que les expressions regulières commencant par "${" et se terminant par "}" soit remplacées par la valeure de la propriété se trouvant entre le "${" et le "}" ?
Suis-je clair ? Si vous avez besoin de précisions ne vous gênez pas ! Présentement je suis dans une impasse, je crois que je suis trop immersé dans le problème pour le voir simplement.
Merci !
Partager