No.
Non si può passare gli argomenti che verranno utilizzati all'interno di un file di costruzione in quel modo. Il ant bootstrap arg1 arg2 arg3
verrà risolto mentre si sta tentando di chiamare i seguenti target bootstrap
, arg1
, arg2
, arg3
e, ovviamente, esiste solo il target bootstrap
.
Se si desidera passare argomenti che verranno utilizzati nel file di generazione, è necessario utilizzare il formato -DpropertyName=value
. Per esempio:
ant bootstrap -Darg1=value1 -Darg2=value2 -Darg3=value3
Per gli altri modi, è possibile scrivere lo script embed nel file build (come BeanShell o JavaScript, con librerie di supporto sceneggiatura di Ant) per elaborare gli argomenti in un primo momento. Ad esempio, è possibile passare gli argomenti in questo modo:
ant bootstrap -Dargs=value1,value2,value3,...
e ora avete una proprietà denominata args
con il valore "valore1, valore2, value3, ..." (per ... voglio dire che la l'utente può digitare più di 3 valori). È possibile utilizzare BeanShell per dividere la args
-arg1
, arg2
e arg3
da ,
, e anche fare qualche controllo ...
<script language="beanshell" classpathref="classpath-that-includes-the-beanshell-lib">
String[] args = project.getProperty("args").split(",");
project.setUserProperty("arg1", args[0].trim());
project.setUserProperty("arg2", args[1].trim());
project.setUserProperty("arg3", args[2].trim());
</script>
grazie per chiarire che fino. ma ora devo ripensare alla mia soluzione. –