Usando o Maven 'exec: exec' com Argumentos

Eu tenho um projeto configurado para construir e executar com o Maven. O projeto depende de bibliotecas nativas específicas da plataforma e estou usando a estratégia encontradaAqui para gerenciar essas dependências.

Essencialmente, o.dll ou.so Os arquivos de uma determinada plataforma são empacotados em um jar e enviados ao servidor Maven com um classificador que identifica a plataforma de destino. O plug-in maven-dependency, em seguida, descompacta o jar específico da plataforma e copia as bibliotecas nativas para a pasta de destino.

Normalmente eu usariamvn exec:java para executar um programa Java, masexec:java executa aplicativos na mesma JVM que o Maven, o que me impede de modificar o caminho de classe. Como as dependências nativas devem ser adicionadas ao caminho de classe, sou forçado a usarmvn exec:exec em vez de. Este é o trecho relevante do pom:

...
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2.1</version>
    <configuration>
        <executable>java</executable>
        <arguments>
            <argument>-Djava.library.path=target/lib</argument>
            <argument>-classpath</argument>
            <classpath />
            <argument>com.example.app.MainClass</argument>
        </arguments>
    </configuration>
</plugin>
...

Isso funciona bem para a configuração padrão do aplicativo, mas eu quero ser capaz de especificar alguns parâmetros opcionais na linha de comando. Idealmente, gostaria de fazer algo assim:

mvn exec:exec -Dexec.args="-a <an argument> -b <another argument>"

Infelizmente, especificandoexec.args variável sobrescreve os argumentos que tenho no pom (que são necessários para configurar o classpath e executar o aplicativo). Existe uma maneira de contornar isso? Qual é a melhor maneira de especificar alguns argumentos opcionais na linha de comando sem sobrescrever o que eu tenho no pom?

questionAnswers(1)

yourAnswerToTheQuestion