Je travaille sur une automatisation à l'aide Jenkins, où je le schéma et les détails DB stockés commeItérer par un tableau de hachages dans le script ANT
[schema1:db1, schema2:db2]
stocké dans une propriété ANT ${schemaValue}
<propertycopy name="schemaValue" from="${SchemaVariable}"/>
Maintenant, je je essaie de boucle à travers ce tableau de hachages pour exécuter la connexion, J'ai essayé avec
<for param="theparam" list="${schemaValue}">
<sequential>
<echo message="param: @{theparam}"/>
</sequential>
</for>
Mais cela considère ${schemaValue}
comme Chaîne et non un tableau,
Aide à ce sujet.
EDIT
Comme suggéré par @ AR.3, j'ai essayé avec
<propertyregex override="yes" property="paramValue" input="@{theparam}" regexp=".+:([^\]]+)]?" replace="\1"/>
<echo message="paramValue: ${paramValue}"/>
<propertyregex override="yes" property="paramKey" input="@{theparam}" regexp="[?([^\[]+):]" replace="\1"/>
<echo message="paramKey: ${paramKey}"/>
$ {} paramValue me donne db1 et db2 correctement
$ {} paramKey me jette erreur
- Est-il possible d'obtenir des valeurs comme schema1: db1 puis sch2ma2: db2. Parce que je reçois ici des noms de schémas dynamiques avec le nom de la base de données. – useranon
@Jasmine Oui, il suffit de modifier l'expression rationnelle ci-dessus selon vos besoins. Dans ce cas, vous pouvez essayer [? ([^ \ [] +: [^ \]] +)]? – manouti
J'ai essayé avec "([^ \ [] + :)" de trouver la clé $ {paramKey} mais ce n'est pas rendu comme prévu. – useranon