我想制作独立的网络应用程序。 我在使用SpringBoot时遇到了一些问题。
我的应用程序是SpringBoot的一个jar文件。
但我的应用程序通常需要jdbc驱动程序jar。 我想为我的应用程序排除jdbc驱动程序jar。 我想从lib文件夹中读取库jar。
但是SpringBoot lib文件夹BOOT-INF/lib
是final static
。
所以,我想为jdbc驱动程序jar添加外部类路径(lib)。
如何在SpringBoot中配置其他类路径。 可以吗?
答案 0 :(得分:7)
您可以参考以下春季启动链接:
您可以使用loader.path属性来定义lib文件夹位置
答案 1 :(得分:3)
您可以使用loader.path参数来定义外部lib文件夹的位置。此文件夹下的所有jar都将添加到类路径中。例如,如果您想将C:\ extLib定义为您的外部lib文件夹,则可以执行以下操作:
java -Dloader.path=/C:/extLib/ -jar aapName.jar
为此,您需要使用PropertiesLauncher。有两种方法可以做到:
选项1
更新项目pom.xml并添加以下标记:
<configuration> <!-- added -->
<layout>ZIP</layout> <!-- to use PropertiesLauncher -->
</configuration
有效的构建标记,更新后的外观如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration> <!-- added -->
<layout>ZIP</layout> <!-- to use PropertiesLauncher -->
</configuration>
</plugin>
</plugins>
</build>
选项2
从命令行启动应用程序时使用PropertiesLauncher:
java -cp aapName.jar -Dloader.path=/C:/extLib/ org.springframework.boot.loader.PropertiesLauncher
答案 2 :(得分:0)
在我的情况下,需要使用“引号”在Windows平台上找到外部lib文件夹
java -cp ScoreExtractionApp.jar -Dloader.path="lib" -Dloader.main=com.sample.score.ScoreExtraction.ScoreExtractionApplication org.springframework.boot.loader.PropertiesLauncher
答案 3 :(得分:0)
您可以使用 maven jar 插件在 maven 中配置类路径
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Class-Path>conf/</Class-Path>
</manifestEntries>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>