2009-08-10 7 views
1

Ich habe ein Plugin, das die Plexus Commandline verwendet, um einige externe Prozesse aufzurufen und die Ausgabe zu erfassen. Eines der Argumente ist in einem lustigen Format mit Leerzeichen und Anführungszeichen, z. --range: "25 Aug 2008" - "04 Aug 2009". Ich habe keine Möglichkeit, das erforderliche Format des Arguments zu ändern, aber Plexus erkennt die Leerzeichen im Argument und umschließt das Ganze in Anführungszeichen.Wie kann ich verhindern, dass meine Befehlszeilenargumente in einem Maven-Plugin maskiert werden?

wird also

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

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

und der Aufruf fehlschlägt.

Kann ich Plexus aufhören zu entkommen die Argumente?

Antwort

1

Das Commandline-Objekt verwendet eine Shell mit der lokalen Umgebung interagieren, können Sie den Shell konfigurieren, dass der Standard entweichende Prozess außer Kraft zu setzen keine Anführungszeichen zu entkommen:

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

Beachten Sie, dass dies bedeutet, dass keine der Argumente werden in die Liste aufgenommen, also verwenden Sie es mit Vorsicht!

Verwandte Themen