web-dev-qa-db-fra.com

Comment configurer un chemin de classe supplémentaire dans Spring Boot?

Je veux créer une application Web autonome. J'ai un problème avec SpringBoot.

Mon application est un fichier jar de SpringBoot.

Mais mon application était généralement nécessaire jar pilote jdbc. Je souhaite exclure le fichier jdbc driver jar pour mon application. Je veux lire le pot de bibliothèque du dossier lib.

Mais le dossier lib SpringBoot est BOOT-INF/lib est final static.

Donc, je veux ajouter un chemin de classe externe (lib) pour le fichier jdbc driver jar.

Comment configurer un chemin de classe supplémentaire dans SpringBoot. Est-ce disponible?

12
fightingmamoru

Vous pouvez référer ce lien ci-dessous à partir de Spring Boot:

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

Vous pouvez utiliser la propriété loader.path pour définir un emplacement de dossier lib

8
mhasan

Vous pouvez utiliser le paramètre loader.path pour définir un emplacement pour un dossier lib externe. Tous les fichiers sous ce dossier seront ajoutés au chemin de classe. Par exemple, si vous souhaitez définir C:\extLib comme dossier de bibliothèque externe, vous pouvez effectuer les opérations suivantes:

Java -Dloader.path=/C:/extLib/ -jar aapName.jar

Pour que cela fonctionne, vous devez utiliser le lanceur de propriétés. Il y a deux façons de procéder:

Option 1

Mettez à jour le projet pom.xml et ajoutez la balise suivante:

<configuration>  <!-- added -->
  <layout>Zip</layout> <!-- to use PropertiesLauncher -->
</configuration

Balise de construction efficace, la mise à jour est la suivante:

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

Option 2

Utilisez le lanceur de propriétés lors du lancement de l'application à partir de la ligne de commande:

Java -cp aapName.jar -Dloader.path=/C:/extLib/ org.springframework.boot.loader.PropertiesLauncher

Références: https://mash213.wordpress.com/2017/01/05/hack-how-2-add-jars-2-springboot-classpath-with-jarlauncher/

4
giftednewbie