Ant ha qualche modo per eseguire manipolazioni di stringhe maiuscole/minuscole/captialize/uncaptialize? Ho guardato PropertyRegex ma non credo che gli ultimi due siano possibili. E 'qualcos'altro?Funzioni stringa ant?
risposta
si potrebbe utilizzare l'attività script e utilizzare un linguaggio di script JSR223 supportato come Javascript, JRuby, Jython, ... per fare la tua gestione
From this thread stringa, utilizzare un compito Ant <script>
:
<target name="capitalize">
<property name="foo" value="This is a normal line that doesn't say much"/>
<!-- Using Javascript functions to convert the string -->
<script language="javascript"> <![CDATA[
// getting the value
sentence = project.getProperty("foo");
// convert to uppercase
lowercaseValue = sentence.toLowerCase();
uppercaseValue = sentence.toUpperCase();
// store the result in a new property
project.setProperty("allLowerCase",lowercaseValue);
project.setProperty("allUpperCase",uppercaseValue);
]]> </script>
<!-- Display the values -->
<echo>allLowerCase=${allLowerCase}</echo>
<echo>allUpperCase=${allUpperCase}</echo>
</target>
uscita
D:\ant-1.8.0RC1\bin>ant capitalize
Buildfile: D:\ant-1.8.0RC1\bin\build.xml
capitalize:
[echo] allLowerCase=this is a normal line that doesn't say much
[echo] allUpperCase=THIS IS A NORMAL LINE THAT DOESN'T SAY MUCH
BUILD SUCCESSFUL
Aggiornamento per un commento di WarrenFaith per separare lo script in un altro bersaglio e passare una proprietà dal chiamata targetdi nuovo all'obiettivo chiamando
Usa antcallback dal vaso formica-contrib
<target name="testCallback">
<antcallback target="capitalize" return="allUpperCase">
<param name="param1" value="This is a normal line that doesn't say much"/>
</antcallback>
<echo>a = ${allUpperCase}</echo>
</target>
e capitalise
compito utilizza il passato in param1
così
<target name="capitalize">
<property name="foo" value="${param1}"/>
uscita finale
[echo] a = THIS IS A NORMAL LINE THAT DOESN'T SAY MUCH
Credo che questo funziona solo con jdk1.6 +. – kfox
Sebbene sia più semplice con Java 6, funziona con Java 5, ma è necessario fornire un'implementazione del proprio linguaggio di scripting, ad es. Rhino per Javascript. –
@JoseK: Sai come posso separare lo script in un target? Quando lo faccio, la proprietà è cambiata nel target, ma in seguito il vecchio valore viene ripristinato. Il mio problema è che voglio rendere l'obiettivo principale il più piccolo possibile in modo che anche i non programmatori possano modificare le proprietà. Grazie – WarrenFaith
- 1. Ant Ant Android
- 2. Funzioni stringa nel modello MediaWiki?
- 3. Ant: come fallire se la proprietà contiene una certa stringa
- 4. C++ nuovo & delete e stringa e funzioni
- 5. Più funzioni all'interno della stringa con LESS
- 6. Loop sulla proprietà in Ant
- 7. Ant pathconvert non accetta newline
- 8. riferimento alla posizione dello script ant all'interno del file ant
- 9. L'installazione ant non può trovare maven-artefatto-ant-2.0.4-dep.jar
- 10. Ant riuscito anche quando Ant Task non riesce
- 11. Ant 1.8.0 bassa prestazione
- 12. Cosa significa "**" in ANT?
- 13. Compilare GWT tramite Ant
- 14. Ant Compilare l'errore - NavUtils
- 15. Ant: condizionale Copia
- 16. configure ant per scala
- 17. Timestamp nel registro Ant?
- 18. Apprendimento stile percorso Ant
- 19. Ant include esterno .jar
- 20. exec Ant refactoring
- 21. Capture Ant output
- 22. Ant classpath e junit.jar
- 23. mainclass vaso ant vaso
- 24. best ant tutorial/quickstart?
- 25. ant scp failure
- 26. Apache Ant inferiore a
- 27. Percorso classe ant Ordine
- 28. cos'è questa build ANT?
- 29. Come usare Ant?
- 30. proprietà nome macchina ant
Consulta anche: http://stackoverflow.com/questions/7129672/uppercase-lowercase-capitalize-an-ant-property/7131195#7131195 –