Ok j'ai trouvé la réponse moi-même et de ce qui est testé.
tu dois juste utiliser un peu de javascript.
<targetname="get build ctr"><scriptlanguage="javascript"><![CDATA[//getting the value
buildnumber = myproj.getProperty("build.number");
index = buildnumber.lastIndexOf(".");
counter = buildnumber.substring(index+1);
myproj.setProperty("buildctr",counter);]]></script></target>
Si ne pas vouloir utiliser des libs, ni de script, j'ai trouvé dans une réponse à une question similaire la meilleure option (le crédit pour cette réponse). Ici, vous serez à l'aide d'un ReplaceRegex:
(j'ai utilisé les mêmes noms de variables que vous avez dans votre solution. Bien sûr, cela manque encore de l'incrément partie de votre réponse, mais ce n'était pas dans votre question.)
Ce script se charge dans index le résultat de la suppression de la regex .*\.) de build.number, qui est, si build.number = 1.0.0.123 puis index = 123.
$ ant
Buildfile: /tmp/build.xml
parse:
[echo] build.number=1.0.0.123; index=123
BUILD SUCCESSFUL
Total time: 0 seconds
La regex ne fonctionne pas pour moi (je suis en train de faire la même chose mais avec une adresse IP). J'ai fini avec un motif de ".*\." (Match tout jusqu'à la dernière période et de le remplacer par", à droite? Je suis un absolu regex newb). Cela semble donner le résultat que je recherchais (le dernier quad) Oh d'ailleurs, il n'était pas évident pour moi ce que cela a été fait--de référence de la source de la réponse... La propertyresource de construire".nombre" est une variable qui contient votre pointillés de la chaîne, la sortie est placée dans le loadresource variable "indice". J'ai choisi les mêmes noms de variables que celles utilisées par l'auteur de l'OP dans son propre réponse. Je vais développer ma réponse à clarifier cela. concernant les regex, je dois avouer que je ne sais pas comment je suis venu avec cette... je lisais ma suggestion que "le match tout, et puis le match rien de, mais des points." Ce n'est en effet l'air assez mal pour moi, alors que votre suggestion n'regarder à droite. Je vais le corriger. Merci!!!!
Je voudrais également utiliser l'ant-contrib PropertyRegex tâche.
L'extrait de code suivant ne fonctionne que si la chaîne d'entrée suit la convention que vous avez utilisé dans votre description, et vous pouvez aussi l'utiliser pour extraire les autres nombres en changeant la valeur entrée dans la balise select.
Vous pouvez également utiliser le issest de la tâche sur la chaîne de sortie pour imprimer un message d'erreur si la chaîne d'entrée ne suit pas la convention, parce que la sortie de la propriété ne sera pas réglée.
Je crois que l'approche la plus facile peut-être d'utiliser l'ant-contrib PropertyRegex tâche.
Quelque chose comme ça, complètement non testé:
OriginalL'auteur Jon Skeet
Ok j'ai trouvé la réponse moi-même et de ce qui est testé.
tu dois juste utiliser un peu de javascript.
OriginalL'auteur pdeva
Natif de la tâche ant
Si ne pas vouloir utiliser des libs, ni de script, j'ai trouvé dans une réponse à une question similaire la meilleure option (le crédit pour cette réponse). Ici, vous serez à l'aide d'un ReplaceRegex:
(j'ai utilisé les mêmes noms de variables que vous avez dans votre solution. Bien sûr, cela manque encore de l'incrément partie de votre réponse, mais ce n'était pas dans votre question.)
Ce script se charge dans
index
le résultat de la suppression de la regex.*\.)
debuild.number
, qui est, sibuild.number = 1.0.0.123
puisindex = 123
.Exemple
build.xml:
Oh d'ailleurs, il n'était pas évident pour moi ce que cela a été fait--de référence de la source de la réponse... La propertyresource de construire".nombre" est une variable qui contient votre pointillés de la chaîne, la sortie est placée dans le loadresource variable "indice".
J'ai choisi les mêmes noms de variables que celles utilisées par l'auteur de l'OP dans son propre réponse. Je vais développer ma réponse à clarifier cela.
concernant les regex, je dois avouer que je ne sais pas comment je suis venu avec cette... je lisais ma suggestion que "le match tout, et puis le match rien de, mais des points." Ce n'est en effet l'air assez mal pour moi, alors que votre suggestion n'regarder à droite. Je vais le corriger. Merci!!!!
OriginalL'auteur Alberto
OriginalL'auteur gman
Voici une solution à l'aide de flaka sans script =
OriginalL'auteur Rebse
Je voudrais également utiliser l'ant-contrib PropertyRegex tâche.
L'extrait de code suivant ne fonctionne que si la chaîne d'entrée suit la convention que vous avez utilisé dans votre description, et vous pouvez aussi l'utiliser pour extraire les autres nombres en changeant la valeur entrée dans la balise select.
Vous pouvez également utiliser le issest de la tâche sur la chaîne de sortie pour imprimer un message d'erreur si la chaîne d'entrée ne suit pas la convention, parce que la sortie de la propriété ne sera pas réglée.
OriginalL'auteur Viorel Florian