exec-maven-plugin 无法正确使用参数
exec-maven-plugin cannot correctly use arguments
我尝试执行带有一些参数的 shell 脚本(实际上它是 OpenLDAP 的 ldapmodify)。这就是我在 pom.xml:
中所做的
在 Maven 配置文件中我定义了一些值
<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 install时选项无效呢?
问题是您将 <commandlineArgs>
嵌入了 <arguments>
部分。只需删除 <arguments>
部分:
<configuration>
<executable>${executable}</executable>
<commandlineArgs>${argument}</commandlineArgs>
</configuration>
我尝试执行带有一些参数的 shell 脚本(实际上它是 OpenLDAP 的 ldapmodify)。这就是我在 pom.xml:
中所做的在 Maven 配置文件中我定义了一些值
<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 install时选项无效呢?
问题是您将 <commandlineArgs>
嵌入了 <arguments>
部分。只需删除 <arguments>
部分:
<configuration>
<executable>${executable}</executable>
<commandlineArgs>${argument}</commandlineArgs>
</configuration>