Я использую следующее для создания исполняемого файла jar. Я использую средство запуска свойств, так как мне нужны дополнительные записи пути к классам (каталог конфигурации). Он работает хорошо, за исключением случаев, когда я пытаюсь расшифровать данные. У меня это
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<executable>true</executable>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
запуск выглядит следующим образом:
java -Dloader.path=/the/config/dir -jar target/folder-service-1.0.0-SNAPSHOT.jar
Похоже, что эта настройка что-то делает с bcprov, как он обнаружен
$ jar tvf folder-service-1.0.0-SNAPSHOT.jar| grep bcp
796532 Fri Jun 29 18:55:18 PDT 2018 BOOT-INF/lib/bcpkix-jdk15on-1.60.jar
329081 Mon Oct 07 10:37:54 PDT 2019 BOOT-INF/lib/bcpg-jdk15on-1.64.jar
4771726 Mon Oct 07 10:28:56 PDT 2019 BOOT-INF/lib/bcprov-jdk15on-1.64.jar
Другой jar отлично работает в формате JarLauncher, но я не могу добавить свою конфигурацию в путь к классам.
Любые подсказки приветствуются
Обновление:
Если Я выполняю распаковку созданного jar-файла и запускаю его с java org.springframework.boot.loader.PropertiesLauncher
, он работает нормально. unzip выдает предупреждение о лишних байтах в начале и продолжает расширять архив. jar xvf не будет работать с jar, только разархивируйте. Кажется, что-то вроде формата архива Франкенштейна.
Обновление 2:
Вернуться к упакованной версии (.jar). Я применил исключения к плагину в соответствии с документацией, а затем добавил банку bouncycastle в -Dloader.path. Дело идет дальше, но теперь у меня проблемы с jolokia, а затем с hawtio, которые пытаются получить ресурсы из своих соответствующих jar-файлов. Формат ZIP, кажется, испорчен, возвращая недопустимые jar-файлы.
Что это за штука, эта «исполняемая jar в формате ZIP»?