Springboot、Tomcat启动加载外部指定文件夹下的jar文件

背景

 把项目中的公共jar包提取出来,放到自定义lib库文件夹中,方便统一分布式项目中依赖的jar版本,springboot是jar方式启动,Tomcat是直接start启动,加载外部jar的方式不同,下面分别介绍两种配置

配置

springboot

maven配置

主要是配置一个plugin,mainClass是启动类的全名,layout需要指定为zip

layout可以指定的类型有jar、war、和zip

这三种在maven打包之后生成的jar文件中的结构不同,下图是zip方式打包出来的格式

 

 可以看出launcher使用的是org.springframework.boot.loader.PropertiesLauncher

jar方式对应的是JarLauncher

war方式对应的是WarLauncher 

通过zip方式在启动时可以指定外部文件夹地址

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <mainClass>com.xxx.Application</mainClass>
        <layout>ZIP</layout>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

启动

通过指定loader.path加载外部资源库

java -Dloader.path=/home/java/mylib -jar xx.jar

Tomcat配置

catalina.properties

修改conf文件夹下的catalina.properties文件

修改common.loader的值,在最后添加上外部资源库的地址

common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","/home/java/mylib/*.jar"

 启动正常启动即可

猜你喜欢

转载自blog.csdn.net/anshichuxuezhe/article/details/126652742