У меня есть приложение весенней загрузки, основанное на maven и имеющее несколько модулей.Я использую spring-boot-maven-plugin
, однако, этот плагин используется только на одном из модулей.Хотя отдельные jar-файлы для каждого модуля довольно малы, исполняемый файл, создаваемый основным модулем, в котором я использую этот плагин с целью «переупаковки», довольно большой (около 750 МБ).
Я расширил созданный JAR-файл и был немного удивлен, увидев, что он объединяет JAR-файлы для нескольких операционных систем, таких как Windows, Linux, Android и т. Д.
Если выпосмотрите файл opncsv
jar на скриншоте ниже, похоже, он объединяет эти jar для 13 различных операционных систем !!
Я понимаю, что исполняемый файл, созданный таким образом, будет работать на кроссплатформенных платформах, но мне просто интересноесли есть способ настроить это исполняемое создание так, чтобы оно упаковывалось только для определенных ОС, таких как linux, на котором я запускаю это приложение.
Большой исполняемый файл в моей ситуации выглядит просто перебором.
Вот плагин
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
<mainClass>org.blabla.products.webapp.Application</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Вот версии зависимостей различных jar-файлов, которые я использую.
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<mysql-connector-java.version>5.1.40</mysql-connector-java.version>
<!--CHECKED FOR CURRENCY AND UPGRADED AS NEEDED ON 1/27/2019-->
<findbugs-maven-plugin.version>3.0.5</findbugs-maven-plugin.version>
<jacoco-maven-plugin.version>0.8.2</jacoco-maven-plugin.version>
<springfox-swagger2.version>2.9.2</springfox-swagger2.version>
<org.jsoup.version>1.11.3</org.jsoup.version>
<opencsv.version>4.4</opencsv.version>
<httpclient.version>4.5.6</httpclient.version>
<dl4j.version>1.0.0-beta3</dl4j.version>
<spring-web.version>5.1.4.RELEASE</spring-web.version>
<gson.version>2.8.5</gson.version>
<ehcache.version>3.6.3</ehcache.version>
<guava.version>27.0.1-jre</guava.version>
<thymeleaf-extras-springsecurity4.version>3.0.4.RELEASE</thymeleaf-extras-springsecurity4.version>
</properties>