C'è un modo per estrarre una sottostringa da una proprietà Ant e posizionare quella sottostringa nella sua proprietà?Come estrarre una sottostringa in Ant
risposta
Io uso scriptdef per creare un tag javascript per stringa, per exemple:
<project>
<scriptdef name="substring" language="javascript">
<attribute name="text" />
<attribute name="start" />
<attribute name="end" />
<attribute name="property" />
<![CDATA[
var text = attributes.get("text");
var start = attributes.get("start");
var end = attributes.get("end") || text.length();
project.setProperty(attributes.get("property"), text.substring(start, end));
]]>
</scriptdef>
........
<target ...>
<substring text="asdfasdfasdf" start="2" end="10" property="subtext" />
<echo message="subtext = ${subtext}" />
</target>
</project>
vorrei andare con la forza bruta e scrivere un compito Ant personalizzato:
public class SubstringTask extends Task {
public void execute() throws BuildException {
String input = getProject().getProperty("oldproperty");
String output = process(input);
getProject().setProperty("newproperty", output);
}
}
Ciò che rimane è di attuare la String process(String)
e aggiungere un paio di setter (ad esempio, per i valori oldproperty
e newproperty
)
Si potrebbe provare a utilizzare PropertyRegex from Ant-conrtib.
<propertyregex property="destinationProperty"
input="${sourceProperty}"
regexp="regexToMatchSubstring"
select="\1"
casesensitive="false" />
Nota aggiuntiva: nel caso in cui ciò avvenga dinamicamente in un ciclo, usare 'override =" true "' per sovrascrivere qualsiasi valore precedente. – robinst
userei compito scritto a tal fine, i preferiscono rubino, esempio tagliate i primi 3 caratteri =
<project>
<property name="mystring" value="foobarfoobaz"/>
<target name="main">
<script language="ruby">
$project.setProperty 'mystring', $mystring[3..-1]
</script>
<echo>$${mystring} == ${mystring}</echo>
</target>
</project>
uscita =
main:
[echo] ${mystring} == barfoobaz
utilizzando l'api formica con metodo project.setProperty() su una proprietà esistente lo sovrascriverà, in questo modo è possibile aggirare il comportamento standard ant , significa propert Una volta impostato i sono immutabili
Ciao, ho ottenuto questo errore: Impossibile creare script engine javax per ruby –
Jarod, è necessario bsf.jar (http://jakarta.apache.org/bsf) e jruby.jar (http: //www.jruby .org), vedi anche http://ant.apache.org/manual/install.html#librarydependencies, nota che il link a jruby è sbagliato su quella pagina. – Rebse
oh grazie Rubse –
Dal momento preferisco usare la vaniglia Ant, io uso un file temporaneo. Funziona ovunque e puoi sfruttare replaceregex per sbarazzarti della parte della stringa che hai non desiderata. Esempio di messaggi Git munging:
<exec executable="git" output="${git.describe.file}" errorproperty="git.error" failonerror="true">
<arg value="describe"/>
<arg value="--tags" />
<arg value="--abbrev=0" />
</exec>
<loadfile srcfile="${git.describe.file}" property="git.workspace.specification.version">
<filterchain>
<headfilter lines="1" skip="0"/>
<tokenfilter>
<replaceregex pattern="\.[0-9]+$" replace="" flags="gi"/>
</tokenfilter>
<striplinebreaks/>
</filterchain>
</loadfile>
Se hai a che fare con una proprietà per iniziare, puoi evitare il file facendo qualcosa come
Grazie! Ho usato '
- 1. Come estrarre una sottostringa da un RegEx .NET?
- 2. Come utilizzare sed per estrarre sottostringa
- 3. Utilizzare Awk per estrarre la sottostringa
- 4. Usando sed per estrarre una sottostringa tra parentesi graffe
- 5. Estrarre ogni parola completa che contiene una determinata sottostringa
- 6. Come estrarre una sottostringa da una stringa in PHP fino a quando raggiunge un determinato carattere?
- 7. come analizzare un URL e estrarre la sottostringa richiesta
- 8. come estrarre sottostringa e numeri solo con grep/sed
- 9. come estrarre la sottostringa da una stringa fino a trovare una virgola C# asp.net
- 10. Estrarre una sottostringa da una stringa in Ruby utilizzando un'espressione regolare
- 11. Come rimuovere una determinata sottostringa in C#
- 12. come sostituire una sottostringa di una stringa
- 13. Come sottostringa in jquery
- 14. Come avvolgere una build Ant con Maven?
- 15. Come determinare se una sottostringa è in una stringa diversa
- 16. Come controllare se una stringa contiene una sottostringa in Delphi
- 17. IOS: NSString che recupera una sottostringa da una stringa
- 18. Come recuperare una sottostringa dal file di testo in python?
- 19. Come possiamo estrarre sottostringa della stringa in base alla posizione e il separatore
- 20. Posizione di una sottostringa in NSString
- 21. Trova sottostringa in una stringa utilizzando C#
- 22. Come trovare una sottostringa in un campo in MongoDB
- 23. Come trovare l'indice di una sottostringa?
- 24. Trovare una sottostringa in un oggetto NSString
- 25. Controllare una sottostringa in una stringa in Oracle senza LIKE
- 26. Come si estrae una sottostringa da una stringa finché non si incontra il secondo spazio?
- 27. Come posso sostituire una corrispondenza di sottostringa regex in Javascript?
- 28. Come sottostringa tra due separatori in una posizione arbitraria
- 29. Come posso tagliare la sottostringa da una stringa in tcl
- 30. Come rinominare una cartella usando Ant?
Puoi essere più specifico su cosa stai cercando di fare? Perché non avrebbe più senso definire una proprietà per contenere il valore che stai dipendendo e utilizzarla in più posti? Se le tue proprietà Ant cambiano abbastanza spesso da dover reagire in modo programmatico, potresti fare qualcos'altro che non va. – PanCrit