Bootstrap

springboot项目如何将依赖的jar包分割

在 Maven 项目中,BOOT-INF/lib 目录通常位于打包后的 JAR 文件内部。如果你希望查看 BOOT-INF/lib 的绝对路径,

1、配置maven打包的依赖

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <layout>ZIP</layout>
                <includes>
                    <include>
                        <groupId>nothing</groupId>
                        <artifactId>nothing</artifactId>
                    </include>
                </includes>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        <excludeTransitive>false</excludeTransitive>
                        <stripVersion>false</stripVersion>
                        <includeScope>runtime</includeScope>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

运行时指定依赖路径

java -jar -Dloader.path=lib my-spring-boot-app-1.0.0.jar

//依赖多个路径的时候

java -jar -Dloader.path=lib1,lib2 your-application.jar

如果系统需要动态的往内部依赖的jar包的路径放一些新的jar包,那么则需要获取这个路径,这样本地自测的时候就可以很方便的找到路径了。

springboot打包默认就是一个jar包,依赖的jar的路径就在内部

执行jar命令

jar xf my-spring-boot-app.jar

结果

BOOT-INF/
META-INF/
org/

;