private Map < String , Object > handleArgDefine ( final String arg , final Deque < String > args ) { /* * Interestingly enough, we get to here when a user uses -Dname=value. * However, in some cases, the OS goes ahead and parses this out to args * {"-Dname", "value"} so instead of parsing on "=", we just make the * "-D" characters go away and skip one argument forward. * * I don't know how to predict when the JDK is going to help or not, so * we simply look for the equals sign. */ final Map . Entry < String , String > entry = parse ( arg . substring ( 2 ) , args ) ; if ( entry . getValue ( ) == null ) { throw new BuildException ( "Missing value for property " + entry . getKey ( ) ) ; } if ( RESERVED_PROPERTIES . containsKey ( entry . getKey ( ) ) ) { throw new BuildException ( "Property " + entry . getKey ( ) + " cannot be set with -D, use " + RESERVED_PROPERTIES . get ( entry . getKey ( ) ) + " instead" ) ; } return ImmutableMap . of ( entry . getKey ( ) , entry . getValue ( ) ) ; }
Handler - D argument