wagon:upload でテスト データをアップロードするときに、http ヘッダー "Content-Type: application/json" を設定する必要があります。説明に従ってサーバーを設定しています: HttpClient HTTP Wagon の高度な構成
pom.xml でのワゴン構成は次のとおりです。
<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>
私は何を間違っていますか?誰かがこの問題を解決するのを手伝ってくれませんか!!!
追加情報: 13.10.2016
異なるバージョンの maven と wagon-upload を試しましたが、何も機能していないようです。問題をテストするためのgithubの簡単なプロジェクトを次に示します。