Bruke en Spring Boot-applikasjon som en avhengighet
1. Oversikt
I denne opplæringen vil vi se hvordan du bruker et Spring Boot-program som en avhengighet av et annet prosjekt.
2. Spring Boot Packaging
Spring Boot Maven og Gradle plugins pakker begge applikasjonen vår som kjørbare JARer - en slik fil kan ikke brukes i et annet prosjekt siden klassefiler blir lagt inn BOOT-INF / klasser. Dette er ikke en feil, men en funksjon.
For å dele klasser med et annet prosjekt, er den beste tilnærmingen å ta lage en egen krukke som inneholder delte klasser, gjør det til en avhengighet av alle moduler som er avhengige av dem.
Men hvis det ikke er mulig, kan vi konfigurere programtillegget til å generere en egen krukke som kan brukes som en avhengighet.
2.1. Maven-konfigurasjon
La oss konfigurere programtillegget med en klassifikator:
... ... ... org.springframework.boot spring-boot-maven-plugin exec
Selv om konfigurasjonen for Spring Boot 1.x ville være litt annerledes:
... org.springframework.boot spring-boot-maven-plugin repackage exec
Dette vil skape to krukker, en med suffikset utføre som en kjørbar krukke, og en annen som en mer typisk krukke som vi kan inkludere i andre prosjekter.
3. Emballasje med Maven Assembly Plugin
Vi kan også bruke maven-assembly-plugin for å lage den avhengige krukken:
org.apache.maven.plugins maven-assembly-plugin jar-with-dependencies make-assembly package single
Hvis vi bruker dette pluginet sammen med utføre klassifikator i spring-boot-maven-plugin, det vil generere tre krukker. De to første vil være de samme vi så tidligere.
Den tredje vil ha det suffikset vi spesifiserte i tag og vil inneholde alle prosjektets overgangsavhengigheter. Hvis vi inkluderer det i et annet prosjekt, trenger vi ikke å inkludere våravhengigheter separat.
4. Konklusjon
I denne artikkelen viste vi et par tilnærminger for å pakke et Spring Boot-program for bruk som en avhengighet i andre Maven-prosjekter.
Som alltid er koden som støtter artikkelen tilgjengelig på GitHub.