Java 向maven exec插件的内部命令传递参数失败

Java 向maven exec插件的内部命令传递参数失败,java,maven,rmic,Java,Maven,Rmic,我正在尝试使用maven exec插件为使用EJB2.1制作的旧项目启动ejbdeploy命令 问题是命令的一个参数是另一个命令(RMIC),它也有我需要使用的参数 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <executions> <execu

我正在尝试使用maven exec插件为使用EJB2.1制作的旧项目启动ejbdeploy命令

问题是命令的一个参数是另一个命令(RMIC),它也有我需要使用的参数

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>ejb-deploy</id>
            <phase>package</phase>
            <goals>
                <goal>exec</goal>
            </goals>
            <configuration>
                <executable>ejbdeploy</executable>
                    <arguments>
                        <argument>${project.build.directory}\${project.build.finalName}.jar</argument>
                        <argument>${project.build.directory}\working</argument>
                        <argument>${project.build.directory}\${project.build.finalName}-deployed.jar</argument>
                        <argument>-rmic "-d C:\java\classes"</argument>
                        <argument>-cp</argument>
                        <classpath/>
                    </arguments>
            </configuration>
        </execution>
    </executions>
</plugin>

这就像我的参数设置错误一样。有什么想法吗?

当使用传递参数时,需要确保每个
不包含未转义的空格字符。每个参数必须作为单独的
给出

在您的例子中,
-rmic“-d C:\java\classes”
实际上由两个参数组成:第一个参数是
-rmic
,第二个参数是
“-d C:\java\classes”
(其中包含一个转义空格),因此不能将它们传递到单个

因此,您可以具有以下配置:

<arguments>
  <argument>${project.build.directory}\${project.build.finalName}.jar</argument>
  <argument>${project.build.directory}\working</argument>
  <argument>${project.build.directory}\${project.build.finalName}-deployed.jar</argument>
  <argument>-rmic</argument>
  <argument>"-d C:\java\classes"</argument>
  <argument>-cp</argument>
  <classpath />
</arguments>

${project.build.directory}\${project.build.finalName}.jar
${project.build.directory}\working
${project.build.directory}\${project.build.finalName}-deployed.jar
-rmic
“-dc:\java\classes”
-cp

配置这些参数后,启动的可执行文件的
main
方法将
-rmic
作为参数数组中的第三个元素,而
-dc:\java\classes
作为参数数组中的第四个元素。

事实上,您完全正确。我还有一些其他错误,但与maven exec插件的使用无关。简明扼要,谢谢!