Maven-Wagon - Как переименовать ресурсы с помощью специальных символов? - PullRequest
0 голосов
/ 31 декабря 2011

Я пытаюсь использовать плагин 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-адрес через обычный браузер, браузер также дает мне «чистый» и приятныйимя файла.Wagon-HTTP игнорирует этот 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

1 Ответ

1 голос
/ 31 декабря 2011

Плагин Wagon предоставляет Wagon API, а Wagon API является , а не универсальным API для доступа к удаленной файловой системе.Он предназначен только для передачи содержимого в репозитории Maven и из него, а не произвольных файлов в произвольные места.Я бы порекомендовал использовать maven-antrun-plugin и ssh, как в в этом примере .

...