美文网首页
SpringBoot 打 War 包时排除第三方 Jar 包

SpringBoot 打 War 包时排除第三方 Jar 包

作者: 中山桥二十七霸 | 来源:发表于2018-10-05 12:00 被阅读0次

使用 SpringBoot 开发 Web 应用时,使用到的第三方 Jar 包可能数量比较多,每次在打包时生成的 War 包都会比较大(每次都会重复打包第三方依赖),但实际的业务 Jar 只占很少的一部分。如果想要传输这个生成的 Jar 包会比较麻烦。

<build>
    <plugins>
        <!-- spring-boot-maven 打包插件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.0.3.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!-- 热部署 -->
                <fork>true</fork>
                <!-- 排除依赖包 Step.1 -->
                <includes>
                    <include>
                        <groupId>nothing</groupId>
                        <artifactId>nothing</artifactId>
                    </include>
                </includes>
            </configuration>
        </plugin>
        <!-- 编译插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <!-- Maven War 插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.0.0</version>
            <!-- 排除依赖包 Step.2 -->
            <configuration>
                <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
            </configuration>
        </plugin>
        <!-- 将依赖包单独拷贝到 target/lib 下 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-lib</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>false</overWriteSnapshots>
                        <overWriteIfNewer>true</overWriteIfNewer>
                        <includeScope>compile</includeScope>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

配置过 pom 之后,新打的包就是这样式的,业务跟依赖已经分离开了:

20181005.1.png

相关文章

网友评论

      本文标题:SpringBoot 打 War 包时排除第三方 Jar 包

      本文链接:https://www.haomeiwen.com/subject/aiqqaftx.html