我有一个基于maven的spring boot应用程序,并且有几个模块。我确实使用了spring-boot-maven-plugin
,但是,此插件仅在其中一个模块上使用。即使每个模块的jar文件很小,但主模块生成的可执行文件却很大,大约是750 MB。
我扩展了所创建的jar文件,发现它已经捆绑了Windows,Linux,Android等多种操作系统的jar文件,对此我感到有些惊讶。
如果在下面的屏幕截图中看到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>