У нас есть проект, использующий webstart-maven-plugin для создания артефакта JNLP Java Webstart.
Но на maven compile я всегда получаю
[ОШИБКА] Не удалось выполнить цель
org.codehaus.mojo: WebStart-Maven-плагин: 1,0-бета-6: JNLP-скачать-сервлет
(по умолчанию) на веб-запуске проекта: не удалось подписать jar
... \ target \ jnlp \ libs \ unprocessed_commons-codec-1.10.jar, используйте -X для
есть детали ошибки
Запуск с ключом -X показывает:
jarsigner: невозможно подписать jar: java.io.IOException: ошибка при создании
метка времени: запрос метки времени был отклонен. Не распознан или
идентификатор неподдерживаемого алгоритма.
Из-за этой ошибки Я обновил свой JDK до 1.8 (только для целей тестирования, поскольку мне в настоящее время все еще требуется 1.7 для продукта):
java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
но все равно я получаю ошибку выше.
Чтобы получить метку времени, мы используем URL http://sha1timestamp.ws.symantec.com/sha1/timestamp,, см. Конфигурацию плагина maven ниже.
Моя проблема: для моих коллег это работает, у них одинаковая версия Java, одинаковые настройки проекта maven и т. Д.
Поэтому это должно быть проблемой в моей местной среде. Есть идеи?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>webstart-maven-plugin</artifactId>
<version>1.0-beta-6</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>jnlp-download-servlet</goal>
</goals>
</execution>
</executions>
<configuration>
<outputJarVersions>true</outputJarVersions>
<outputDirectoryName>webstart</outputDirectoryName>
<excludeTransitive>false</excludeTransitive>
<templateDirectory>src/main/resources/jnlp</templateDirectory>
<libPath>libs</libPath>
<verbose>true</verbose>
<unsignAlreadySignedJars>true</unsignAlreadySignedJars>
<jnlpFiles>
<jnlpFile>
<templateFilename>abc.vm</templateFilename>
<outputFilename>abc.jnlp</outputFilename>
<jarResources>
...
</jarResources>
</jnlpFile>
</jnlpFiles>
<sign>
<keystore>${pathKeystore}</keystore>
<storepass>${passstore}</storepass>
<keypass>${passkey}</keypass>
<alias>${alias}</alias>
<tsaLocation>${tsaLocation}</tsaLocation>
<arguments>
<argument>-J-Djavax.net.ssl.trustStore=${project.build.directory}/../myTruststore.jks</argument>
<argument>-J-Djavax.net.ssl.trustStorePassword=myPassword</argument>
<argument>-J-Djavax.net.ssl.keyStore=${project.build.directory}/../myTruststore.jks</argument>
<argument>-J-Djavax.net.ssl.keyStorePassword=myPassword</argument>
<argument>-J-Dhttps.proxyHost=proxy.mycompany.com</argument>
<argument>-J-Dhttps.proxyPort=3128</argument>
<argument>-J-Dhttp.proxyHost=proxy.mycompany.com</argument>
<argument>-J-Dhttp.proxyPort=3128</argument>
</arguments>
</sign>
<unsign>true</unsign> <!-- unsign already signed packages and sign them with own key -->
</configuration>
</plugin>
...
<tsaLocation>http://sha1timestamp.ws.symantec.com/sha1/timestamp</tsaLocation>