1

Maven 3.0.3 を使用しています。Maven exec プラグインを使用して、あるディレクトリの内容を別のディレクトリにコピーするのに問題があります。悲しいことに、このプラグインを pom.xml に含めると…</p>

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.1.1</version>
    <configuration>
        <executable>cp</executable>
        <arguments>
            <argument>-r</argument>
            <argument>web-app/*</argument>
            <argument>src/main/webapp</argument>
        </arguments>
    </configuration>
    <executions>
        <execution>
            <phase>verify</phase>
            <goals>
                <goal>exec</goal>
            </goals>
        </execution>
    </executions>
</plugin>

機能していません。以下のエラーが表示されます…</p>

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.1.1:exec (default-cli) on project jx: Result of /bin/sh -c cd /Users/davea/Documents/workspace/mycoUSA2/Technology/nna/myco2usa/jx && cp -r 'web-app/*' src/main/webapp execution is: '1'. -> [Help 1]

プラグイン構成を変更して、あるディレクトリの内容を別のディレクトリにコピーする方法を知っている人はいますか? ありがとう - デイブ

4

3 に答える 3

2

bash を使用している場合は、次のことを試してください。

<executable>bash</executable>
<arguments>
    <argument>-c</argument>
    <argument>cp -r web-app/* src/main/webapp</argument>
</arguments>

これにより、新しい bash が生成され、cp -r web-app/* src/main/webapp実行するコマンドが与えられます。

最初にこれを通常のターミナルウィンドウに入力して、それが機能するかどうかをテストすることもできます。

bash -c "cp -r web-app/* src/main/webapp"

は記号を自動的に挿入するため、"記号は違いを生むことに注意してください。したがって、記号は-tag には含まれません。exec-maven-plugin<argument>

于 2018-04-03T18:23:39.370 に答える
1

実行したコマンドに注意してください。エラー出力から:

cp -r 'web-app/*' src/main/webapp

'web-app/*'特に、コピーしようとしたファイルに注意してください。この引数を引用しているため、コマンドはweb-appディレクトリでcpその名前の特定のファイルを探しています。*この名前のファイルがないため、エラーコードで終了しました1

maven-resources-pluginには、このタスクを実行するように設計された目標があります。試してみませんか?ビルドプラットフォームを独立させるという追加の利点があります。

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.5</version>
    <executions>
        <execution>
            <phase>validate</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${basedir}/src/main/web-app</outputDirectory>
                <resources>
                    <resource>
                        <directory>web-app</directory>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>
于 2011-11-19T00:01:48.680 に答える
0
  1. mvn -X はより明らかになるかもしれません

  2. 多くの人は、移植可能なソリューションを得るために、maven-antrun-plugin を使用し、これを ant でスクリプト化します。

于 2011-08-05T17:51:50.150 に答える