exec-maven-plugin не может правильно использовать аргументы

Я пытаюсь выполнить сценарий оболочки (на самом деле это ldapmodify из OpenLDAP) с некоторыми аргументами. Вот как я это сделал в pom.xml:

В Maven Profile я определил некоторые значения

<profile>
    <id>Linux-OpenLDAP</id>
         <activation>
             <os>
                  <family>Unix</family>
             </os>
         </activation>
    <properties>
        <OpenLdap.ClientTools.home></OpenLdap.ClientTools.home>
        <executable>/usr/local/bin/ldapmodify</executable>
        <argument>-a -x -h localhost -p 389 -D "cn=manager,dc=my-domain,dc=com" -f ${test-users.idif.path} -w secret</argument>
    </properties>
</profile>

Вот как я использую exec-maven-plugin:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                    <configuration>
                        <executable>${executable}</executable>
                        <arguments>
                            <commandlineArgs>${argument}</commandlineArgs>
                        </arguments>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Затем после mvn installЯ получил эту ошибку:

[INFO] --- exec-maven-plugin:1.4.0:exec (default) @ entity-matching-bootstrap ---
/usr/local/bin/ldapmodify: invalid option -- ' '
ldapmodify: unrecognized option -
Add or modify entries from an LDAP server

Если я бегу /usr/local/bin/ldapmodify -a -x -h localhost -p 389 -D "cn=manager,dc=ibm,dc=com" -f /home/entity-matching/entity-matching-bootstrap/src/test/resources/test_users.ldif -w secret прямо в линии связи, это будет успешно. Так почему эта опция недействительна во время установки mvn?

1 ответ

Решение

Проблема в том, что вы вставляете <commandlineArgs> в пределах <arguments> раздел. Просто ремвое <arguments> раздел:

<configuration>
  <executable>${executable}</executable>
  <commandlineArgs>${argument}</commandlineArgs>
</configuration>
Другие вопросы по тегам