Hi all,

In Apache Maven, we're working to upgrade Commons CLI 1.4 to 1.5.0 [1]. Until now, we were using the (deprecated) GnuParser from Commons CLI, and we decided that we want to move to DefaultParser. The transition has been pretty smooth but there's one use case we're struggling with.

As you may know, Maven allows to set properties using -D. A popular example is -DskipTests... Even though -D mimics the JVM switch with the same name, the primary purpose of this switch is to set a Maven property. This switch also has a longer version, --define. It is often used like this: -Dmykey=myvalue, and consequently, it could be used as --define mykey=myvalue.

Unfortunately, the latter no longer works in Commons CLI 1.5.0 with the DefaultParser. I've been debugging the Commons CLI code and it seems to look for an option called "define mykey" rather than "define". As a result, parsing the command line args breaks because we never declared an option "define mykey".

What we do declare is this:

    Option.builder("D")
        .longOpt("define")
        .hasArgs()
        .valueSeparator('=')
        .build()


Should it possible to parse a command line like I mentioned above: mvn --define mykey=myvalue? If so, how should we be doing that?


Thanks,


Maarten


[1] https://github.com/apache/maven/pull/605

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org

Reply via email to