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&amp;param2=1234</fromFile>
                        <toDir>${project.build.directory}</toDir>
                        <toFile>targetfilename.zip</toFile>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

问题是?因为toFile只在下载后应用

当我通过普通浏览器下载URL时,浏览器也给了我一个"干净"和漂亮的文件名。这个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

Wagon插件公开了Wagon API,而Wagon API 不是一个通用的远程文件系统访问API。它的目的只是将内容推入或推出Maven存储库,而不是将任意文件推到任意位置。我建议使用maven-antrun-plugin和ssh,如本例所示。

最新更新