Comment puis-je arrêter mes arguments de ligne de commande étant échappé dans un plugin Maven?

StackOverflow https://stackoverflow.com/questions/1254682

  •  12-09-2019
  •  | 
  •  

Question

J'ai un plugin qui utilise le Plexus Commandline pour appeler un processus externe et capturer la sortie. L'un des arguments est dans un format drôle avec des espaces et des citations, par exemple --range: "25 août 2008" - "04 août 2009". Je n'ai aucun moyen de changer le format requis de l'argument, mais Plexus détecte les espaces dans l'argument et enveloppe le tout entre guillemets.

call --range:"25 Aug 2008"-"04 Aug 2009"

devient

call "--range:"25 Aug 2008"-"04 Aug 2009""

et l'invocation échoue.

Puis-je faire arrêter plexus échapper aux arguments?

Était-ce utile?

La solution

L'objet Commandline utilise un Shell pour interagir avec l'environnement local, vous pouvez configurer le Shell pour passer outre le processus échappant par défaut de ne pas échapper à des citations:

Commandline cl = new Commandline("call");
commandline.getShell().setQuotedArgumentsEnabled(false);

Sachez que cela signifie que pas des arguments seront entre apostrophes, afin de l'utiliser avec précaution!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top