に特殊文字:jarsignerのプラグインとストアパス
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>key/mystore.jks</keystore>
<alias>myalias</alias>
<storepass>aBc.d:efg,H#ij^k?L</storepass>
</configuration>
</plugin>
問題は、ストアパスに特殊文字であるように見えます。私はWindows上だときは、上記のようにストアパスを提供することは、次のエラーが発生します。
Failed executing 'cmd.exe /X /C "D:\SOFT\JDK8\jre\..\bin\jarsigner.exe ...
私は基本的な場面では、jarsignerコマンドを実行すると:
jarsigner.exe -keystore D:\path\to\mystore.jks -storepass aBc.d:efg,H#ij^k?L D:\path\to\project\target\webstarts.jar myalias
を私は同様のエラーを取得しますが、ときに私はストアパスをラップ引用符で、それは動作します。だから私は戻って私のpom.xml
に行き、引用符でそこストアパスを置く:
<storepass>"aBc.d:efg,H#ij^k?L"</storepass>
そしてそれは働きました。残念ながら、Linuxのビルドサーバーで同じビルドを実行すると、引用符は機能しません。引用符なしでのみ動作します。だから私は完全にポンポンのうちリテラルストアパスを取ると、
<storepass>${jks.storepass}</storepass>
ような何かをしようとしたし、その後
mvn clean package -Djks.storepass=aBc.d:efg,H#ij^k?L
それはで動作するか、Windows上で引用符なしませんでした。
私は、特別な文字でstorepassをサポートするソリューションを探しており、同じpomを持つWindowsとLinuxの両方で動作します。特別なキャラクター( "changeme"のような)がなくても、すべてがうまくいっていて、引用符を必要としませんでした。