2

EJB 2.1 で作成した古いプロジェクトの ejbdeploy コマンドを起動するために maven-exec-plugin を使用しようとしています。

問題は、コマンドの引数の 1 つが、使用する必要がある引数を持つ別のコマンド (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>

このスニペットは、 my 中にエラーを生成しますmvn clean install:

[INFO] --- exec-maven-plugin:1.5.0:exec (ejb-deploy) @ SIMBOLight ---
Unrecognized option: -rmic -d.
Unrecognized option: C:\java\classes.
Error: Must specify the input JAR/EAR filename, the working directory, and output JAR/EAR filename.
0 Errors, 0 Warnings, 0 Informational Messages

パラメータのフォーマットが間違っているようです。何か案は ?

4

1 に答える 1

2

で引数を渡すときは、それぞれにエスケープされていないスペース文字が含まれexec-maven-pluginていないことを確認する必要があります。<argument>各引数は、個別の として指定する必要があります<argument>

あなたの場合、-rmic "-d C:\java\classes"は実際には 2 つの引数で構成されています。最初の引数はで、2 番目の引数-rmic"-d C:\java\classes"(エスケープされたスペースを含む) であるため、それらを単一の に渡すことはできません<argument>

そのため、次の構成を使用できます。

<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>

これらの引数を使用して構成するとmain、起動された実行可能ファイルのメソッドは-rmic、引数配列の 3 番目の要素および引数配列-d C:\java\classesの 4 番目の要素として取得されます。

于 2016-09-12T09:24:14.237 に答える