如何在SpringBoot中配置其他类路径?

时间:2016-11-09 02:42:45

标签: java spring spring-boot external q

我想制作独立的网络应用程序。 我在使用SpringBoot时遇到了一些问题。

我的应用程序是SpringBoot的一个jar文件。

但我的应用程序通常需要jdbc驱动程序jar。 我想为我的应用程序排除jdbc驱动程序jar。 我想从lib文件夹中读取库jar。

但是SpringBoot lib文件夹BOOT-INF/libfinal static

所以,我想为jdbc驱动程序jar添加外部类路径(lib)。

如何在SpringBoot中配置其他类路径。 可以吗?

4 个答案:

答案 0 :(得分:7)

您可以参考以下春季启动链接:

https://docs.spring.io/spring-boot/docs/current/reference/html/executable-jar.html#executable-jar-property-launcher-features

  

您可以使用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

参考:https://mash213.wordpress.com/2017/01/05/hack-how-2-add-jars-2-springboot-classpath-with-jarlauncher/

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