You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by ji...@codehaus.org on 2003/12/02 19:42:01 UTC

[jira] Updated: (MAVEN-786) maven Linux shell script incorrectly quotes arguments it passes through to Java

The following issue has been updated:

    Updater: Jason van Zyl (mailto:jason@zenplex.com)
       Date: Tue, 2 Dec 2003 12:41 PM
    Changes:
             Version changed to 1.1
             Version changed from 1.0-beta-10
             Fix Version changed to 1.1
             Fix Version changed from 1.0-rc1
    ---------------------------------------------------------------------
For a full history of the issue, see:

  http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-786&page=history

---------------------------------------------------------------------
View the issue:

  http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-786


Here is an overview of the issue:
---------------------------------------------------------------------
        Key: MAVEN-786
    Summary: maven Linux shell script incorrectly quotes arguments it passes through to Java
       Type: Bug

     Status: Reopened
   Priority: Minor

 Original Estimate: Unknown
 Time Spent: Unknown
  Remaining: Unknown

    Project: maven
   Fix Fors:
             1.1
   Versions:
             1.1

   Assignee: 
   Reporter: John Farrell

    Created: Fri, 5 Sep 2003 12:35 AM
    Updated: Tue, 2 Dec 2003 12:41 PM
Environment: Linux (in my case, Mandrake 9.1)

Description:
If I want to pass a Java property with a space in it through to my goal,
for example,

maven -e "-Dminestar.release=stable potatoes" zip

maven incorrectly quotes the parameters when passing them to Java resulting in:

BUILD FAILED
Goal "potatoes" does not exist in this project.

HERE'S THE FIX:

Edit the maven shell script. Down the bottom are two lines which say:

    $MAIN_CLASS $@

Change them to

    $MAIN_CLASS "$@"

This tells the shell to quote parameters individually. The bash manual says:

       @      Expands  to  the positional parameters, starting from one.  When
              the  expansion  occurs  within  double  quotes,  each  parameter
              expands to a separate word.  That is, "$@" is equivalent to "$1"
              "$2" ...  When there are no positional parameters, "$@"  and  $@
              expand to nothing (i.e., they are removed).

It took me ages to find this trick for our own system, I know it's confusing as hell.


---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org