Utilisation d'une application Spring Boot comme dépendance

1. Vue d'ensemble

Dans ce tutoriel, nous verrons comment utiliser une application Spring Boot en tant que dépendance d'un autre projet.

2. Emballage de botte de printemps

Les plugins Spring Boot Maven et Gradle conditionnent tous les deux notre application sous forme de fichiers JAR exécutables - un tel fichier ne peut pas être utilisé dans un autre projet car les fichiers de classe sont placés dans BOOT-INF / classes . Ce n'est pas un bug, mais une fonctionnalité.

Afin de partager des classes avec un autre projet, la meilleure approche à adopter est de créer un fichier jar séparé contenant des classes partagées , puis d'en faire une dépendance de tous les modules qui en dépendent.

Mais si ce n'est pas possible, nous pouvons configurer le plugin pour générer un fichier jar séparé qui peut être utilisé comme dépendance.

2.1. Configuration Maven

Configurons le plugin avec un classificateur:

...  ...  ...  org.springframework.boot spring-boot-maven-plugin  exec     

Cependant, la configuration de Spring Boot 1.x serait un peu différente:

...  org.springframework.boot spring-boot-maven-plugin    repackage   exec    

Cela créera deux fichiers JAR , un avec le suffixe exec comme fichier exécutable et un autre comme fichier plus typique que nous pouvons inclure dans d'autres projets .

3. Emballage avec le plug-in d'assemblage Maven

Nous pouvons également utiliser le plugin maven-assembly-plugin pour créer le fichier jar dépendant:

 org.apache.maven.plugins maven-assembly-plugin   jar-with-dependencies     make-assembly package  single    

Si nous utilisons ce plugin avec le classificateur exec dans spring-boot-maven-plugin, il générera trois jars. Les deux premiers seront les mêmes que nous avons vu précédemment.

Le troisième aura le suffixe que nous avons spécifié dans le et contiendra toutes les dépendances transitives du projet. Si nous l'incluons dans un autre projet, nous n'aurons pas besoin d'inclure séparément les dépendances Spring.

4. Conclusion

Dans cet article, nous avons montré quelques approches pour empaqueter une application Spring Boot à utiliser en tant que dépendance dans d'autres projets Maven.

Comme toujours, le code qui sous-tend l'article est disponible sur GitHub.