Multimodulprosjekt med fjærstøvel

1. Oversikt

I denne raske opplæringen viser vi hvordan lage et multimodulprosjekt med Vårstøvel.

Først bygger vi et bibliotekburk som ikke er et program i seg selv, og deretter bygger vi et program som bruker biblioteket vårt.

For en introduksjon til Vårstøvel, se denne artikkelen.

2. Oppsett

For å sette opp vårt multimodulprosjekt, la oss lage en enkel modul ved hjelp av pom-emballasje for å samle biblioteket og applikasjonsmodulene våre i vår Maven-konfigurasjon:

com.baeldung foreldre-multi-modul pom

Vi oppretter to kataloger i prosjektet vårt som vil dele applikasjonsmodulen fra biblioteket krukke modul.

La oss erklære modulene våre i pom.xml:

 biblioteksapplikasjon 

3. Library Jar

For vår bibliotek modul, vil vi bruke krukke emballasje:

com.baledung.example bibliotek jar

Som vi vil dra nytte av Vårstøvel avhengighetsstyring, vi bruker spring-boot-starter-parent som foreldreprosjekt, ta vare på sett til en tom verdi slik at Maven vil løse foreldrene pom.xml fra depotene:

 org.springframework.boot spring-boot-starter-parent 2.2.6.RELEASE 

Noter det hvis vi har vårt eget overordnede prosjekt, kan vi i stedet importere avhengighetsadministrasjonen som en stykliste (BOM) i delen av pom.xml:

   org.springframework.boot spring-boot-dependencies pom 2.2.6.RELEASE import 

Til slutt vil de første avhengighetene være ganske enkle:

  org.springframework.boot spring-boot-starter 

I denne modulen er Vårstøvel plugin er ikke nødvendig fordi hovedfunksjonen til den er å lage en kjørbar über-jar, som vi ikke vil ha og ikke trenger for et bibliotek.

Etter det er vi klare til utvikle en tjenestekomponent som vil bli levert av biblioteket:

@Service offentlig klasse EvenOddService {public String isEvenOrOdd (Integer number) {return number% 2 == 0? "Even": "Odd"; }}

4. Søknadsprosjekt

Som vår bibliotek modul, vår applikasjonsmodul vil bruke krukke emballasje:

com.baeldung.example applikasjonsburk

Og vi vil dra nytte av det Vårstøvel avhengighetsstyring som før:

 org.springframework.boot spring-boot-starter-parent 2.2.6.RELEASE 

I tillegg til våravhengighetsavhengighet, vil vi inkluderer biblioteket vårt krukke opprettet i forrige seksjon:

  org.springframework.boot spring-boot-starter-web com.baeldung.example library $ {project.version} 

Til slutt vil vi bruke Vårstøvel plugg inn:

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

Det er flere praktiske grunner til å bruke plugin som er nevnt ovenfor på dette stedet.

For det første gir den en innebygd avhengighetsoppløsning som setter versjonsnummeret til å matche Vårstøvel avhengigheter.

For det andre søker den etter hovedmetoden for å flagge som en kjørbar klasse.

Endelig og kanskje viktigst, samler den alle krukkerklassesti og bygger en enkelt, kan kjøres über-jar.

Nå som alt er klart til å skrive søknadsklassen vår og gå rett til poenget, la oss implementere en kontroller i hovedapplikasjonsklassen:

@SpringBootApplication (scanBasePackages = "com.baeldung") @RestController offentlig klasse EvenOddApplication {private EvenOddService evenOddService; // constructor @GetMapping ("/ validate /") public String isEvenOrOdd (@RequestParam ("number") Integer number) {return evenOddService.isEvenOrOdd (number); } public static void main (String [] args) {SpringApplication.run (EvenOddApplication.class, args); }}

5. Konklusjon

I denne artikkelen har vi undersøkt hvordan vi kan implementere og konfigurere et multimodulprosjekt og bygge et bibliotek krukke på egenhånd med Vårstøvel.

Som alltid kan kodeeksempler bli funnet på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found