我们可以配置Spring Boot可执行Jar吗?

时间:2019-01-31 02:17:54

标签: java spring maven spring-boot

我有一个基于maven的spring boot应用程序,并且有几个模块。我确实使用了spring-boot-maven-plugin,但是,此插件仅在其中一个模块上使用。即使每个模块的jar文件很小,但主模块生成的可执行文件却很大,大约是750 MB。

我扩展了所创建的jar文件,发现它已经捆绑了Windows,Linux,Android等多种操作系统的jar文件,对此我感到有些惊讶。

如果在下面的屏幕截图中看到opncsv jar文件,则表明它已将这些jar捆绑在13种不同的操作系统中!!

我知道以这种方式创建的可执行文件将可以在跨平台上运行,但是只是想知道是否有一种方法可以配置这种可执行文件创建,以便它仅针对某些操作系统(例如我在其中运行该应用程序的Linux)进行打包

在我的情况下,大型可执行文件似乎有些过分。

enter image description here

这是插件

<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>

1 个答案:

答案 0 :(得分:0)

我想您可以尝试使用Maven排除它。 here已经回答了这个问题。