0

Mave-Wagonプラグインを使用して、HTTP-GET経由でファイルをダウンロードしようとしています。

    <extensions>
        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-http</artifactId>
        </extension>
    </extensions>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>wagon-maven-plugin</artifactId>
            <version>1.0-beta-3</version>
            <executions>
                <execution>
                    <id>download-zip</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>download-single</goal>
                    </goals>
                    <configuration>
                        <url>http://server.com/Download/</url>
                        <fromFile>FileDownload.aspx?param=asdf&amp;param2=1234</fromFile>
                        <toDir>${project.build.directory}</toDir>
                        <toFile>targetfilename.zip</toFile>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

問題は?ダウンロードが行われたtoFileにのみ適用されるため、ターゲットファイル名に。

通常のブラウザでURLをダウンロードすると、ブラウザから「クリーン」で素敵なファイル名も表示されます。このHTTPヘッダーはWagon-HTTPによって無視されますか?

パラメータをURLに渡す方法、またはMavenに別の/クリーンアップされたファイル名を使用させる方法はありますか?

完全を期すために、全体の例外は

    Caused by: java.io.FileNotFoundException: Illegal Syntax in filename (sorry this is an translation)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:145)
    at org.apache.maven.wagon.LazyFileOutputStream.initialize(LazyFileOutputStream.java:154)
    at org.apache.maven.wagon.LazyFileOutputStream.write(LazyFileOutputStream.java:126)
    at org.apache.maven.wagon.AbstractWagon.transfer(AbstractWagon.java:492)
    at org.apache.maven.wagon.AbstractWagon.getTransfer(AbstractWagon.java:328)
    ... 25 more
4

1 に答える 1

1

WagonプラグインはWagonAPIを公開し、WagonAPIは汎用のリモートファイルシステムアクセスAPIではありません。これは、コンテンツをMavenリポジトリに出し入れすることのみを目的としており、任意のファイルを任意の場所にプッシュすることは目的としていません。この例のように、maven-antrun-pluginとsshを使用することをお勧めします。

于 2011-12-31T15:47:24.110 に答える