Ant, jvmarg, les propriétés du système et des citations
Nous avons une propriété qui contient une série d'arguments à passer à la JVM dans un script Ant.
Exemple (notez les guillemets dans la deuxième entrée):
-Dsql.driver=oracle.jdbc.driver.OracleDriver -Dapp.datasource-properties=URL='jdbc:oracle:thin:@//192.168.56.42:1521/xe':User=user:Password=password
Si j'imprime le contenu de la variable avec le echo
cible-je obtenir le résultat attendu
<echo message="${jvm.arguments}"/>
produit
-Dsql.driver=oracle.jdbc.driver.OracleDriver -Dapp.datasource-properties=URL='jdbc:oracle:thin:@//192.168.56.42:1521/xe':User=user:Password=password
Je puis utiliser cette variable comme argument à la JVM.
Exemple:
<junit fork="true" forkmode="once" showoutput="true" printsummary="on">
<jvmarg
line="-XX:MaxPermSize=256m -Xms1024M ${jvm.arguments}"
Les guillemets sont supprimés silencieusement. Les résultats détaillés de l'Ant me donne
[junit] Executing '/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java' with arguments:
[junit] '-XX:MaxPermSize=256m'
[junit] '-Xms1024M'
[junit] '-Dsql.driver=oracle.jdbc.driver.OracleDriver'
[junit] '-Dapp.datasource-properties=URL=jdbc:oracle:thin:@//192.168.56.42:1521/xe:User=user=password'
Comment puis-je passer d'un système de propriété à la JVM contenant des devis? (simple ou double)?
J'ai essayé d'y échapper, à l'aide de guillemets doubles avec aucun effet.
OriginalL'auteur Matteo | 2012-03-02
Vous devez vous connecter pour publier un commentaire.
- Je utiliser
<jvmarg>
avec une seule valeurAlors ce qui est appelé avec la ligne suivante...
La sortie with-debug dispose de lignes attendues par vous.
La
line
est destinée à traiter les arguments séparés par un espace. Il pourrait consacrer davantage de temps à l'analyse et le traitement à la poignée d'entrée avec un espace. Je n'ai pas vérifié le code encore.OriginalL'auteur Jayan