使用 wagon:upload 上传我的测试数据时,我需要设置一个 http 标头“Content-Type: application/json”。我正在设置服务器,如下所述:HttpClient HTTP Wagon 的高级配置
这是我在 pom.xml 中的 wagon 配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<serverId>wagon-upload-test-data</serverId>
<url>http://localhost:8000/</url>
<fromDir>${project.basedir}/src/test/resources/testdata/</fromDir>
</configuration>
<executions>
<execution>
<id>upload-test-resources</id>
<phase>generate-test-resources</phase>
<goals>
<goal>upload</goal>
</goals>
</execution>
</executions>
</plugin>
这是服务器的 Maven 设置配置:
<settings>
...
<servers>
<server>
<id>wagon-upload-test-data</id>
<configuration>
<!-- also tried with and without global configuration -->
<httpHeaders>
<httpHeader>
<name>Content-Type</name>
<value>application/json</value>
</httpHeader>
</httpHeaders>
<httpConfiguration>
<all> <!-- also tried with put -->
<useDefaultHeaders>false</useDefaultHeaders> <!-- tried with true -->
<headers>
<header>
<name>Content-Type</name>
<value>application/json</value>
</header>
<header>
<name>Accept</name>
<value>*/*</value>
</header>
</headers>
</all>
</httpConfiguration>
</configuration>
</server>
</servers>
</settings>
当我调用插件时,它执行得很好,我的测试数据被放在服务器上,但服务器设置似乎被忽略了 - 这是我总是在我的测试服务器上收到的 HTTP PUT 请求:
cache-control: no-cache
cache-store: no-store
pragma: no-cache
expires: 0
accept-encoding: gzip
content-length: 132
host: localhost:8000
connection: Keep-Alive
user-agent: Apache-HttpClient/4.3.5 (java 1.5)
x-php-ob-level: 0
{
"users": [{
"username" : "dummyMachine",
"score" : 3456
}, {
"username" : "dumminister",
"score" : 4125
}]
}
为了确保使用了正确的 Maven 设置文件,我还使用 -X 标签运行了 wagon:upload,这里有一些日志:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T18:41:47+02:00)
Maven home: /usr/local/Cellar/maven/3.3.9/libexec
Java version: 1.8.0_92, vendor: Oracle Corporation
...
Reading global settings from /usr/local/Cellar/maven/3.3.9/libexec/conf/settings.xml
[DEBUG] Reading user settings from /Users/martindobrev/.m2/settings.xml
---> COMMENT: THE SETTINGS FILE USED IS THE CORRECT ONE !!!
...
...
[DEBUG] Goal: org.codehaus.mojo:wagon-maven-plugin:1.0:upload (default-cli)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<excludes>${wagon.excludes}</excludes>
<followSymLink default-value="false">${wagon.followSymLink}</followSymLink>
<fromDir default-value="${project.basedir}">/PATH_TO_M/src/test/resources/testdata/</fromDir>
<includes>${wagon.includes}</includes>
<optimize default-value="false">${wagon.optimize}</optimize>
<project default-value="${project}"/>
<serverId default-value="serverId">wagon-upload-test-data</serverId>
<settings default-value="${settings}"/>
<skip default-value="false">${wagon.skip}</skip>
<toDir default-value="">${wagon.toDir}</toDir>
<url>http://localhost:8000/</url>
<useDefaultExcludes default-value="true">${wagon.useDefaultExcludes}</useDefaultExcludes>
</configuration>
我究竟做错了什么?谁能帮我解决这个问题!!!
附加信息:2016 年 10 月 13 日
我尝试了不同版本的 maven 和 wagon-upload - 似乎没有任何效果。这是github上的一个简单项目来测试问题