Maven-Wagon - Как переименовать ресурсы с помощью специальных символов?
Я пытаюсь использовать плагин 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&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 ответ
Плагин Wagon предоставляет Wagon API, а Wagon API не является универсальным API для доступа к удаленной файловой системе. Он предназначен только для отправки содержимого в репозитории Maven и из него, а не произвольных файлов в произвольные места. Я бы порекомендовал использовать maven-antrun-plugin и ssh, как в этом примере.