Maven-prosjekt med flere kildekataloger

1. Introduksjon

Noen ganger må vi bruke flere kildekataloger i et Java-prosjekt. Et vanlig tilfelleeksempel når det er klasser som genereres automatisk og plasseres i en annen katalog.

I denne korte artikkelen viser vi hvordan du gjør det sette opp Maven til å jobbe med flere kildekataloger.

2. Legge til en annen kildekatalog

Forutsatt at vi allerede har et Maven-prosjekt, la oss legge til en ny kildekatalog kalt en annen-src i src / main mappe.

Etter det, la oss lage en enkel Java-klasse i denne mappen:

offentlig klasse Foo {offentlig statisk String foo () {return "foo"; }}

La oss nå lage en annen klasse i vår src / main / java katalog som bruker Foo klasse vi nettopp har opprettet:

offentlig klasse MultipleSrcFolders {offentlig statisk ugyldig callFoo () {Foo.foo (); }}

Prosjektstrukturen vår ser nå slik ut:

Hvis vi prøver å kompilere dette prosjektet med Maven, får vi en kompileringsfeil fordi det Foo klasse er ikke inkludert i prosjektet:

[FEIL] ... / MultipleSrcFolders.java: [6,9] kan ikke finne symbol [FEIL] symbol: variabel Foo [FEIL] plassering: klasse com.baeldung.maven.plugins.MultipleSrcFolders

3. Bruke Byggherre Plugg inn

Med Maven kan vi bruke Byggherre plugin for å legge til flere kildekataloger. Dette pluginet lar oss tilpasse byggesyklusen på forskjellige måter.

Et av målene er tilleggskilder, som er ment å legge til flere src-kataloger i prosjektet i løpet av generere kilder fase.

Vi kan bruke det i prosjektet vårt ved å legge det til vårt pom.xml:

 org.codehaus.mojo build-helper-maven-plugin 3.0.0 generer-kilder tilleggskilde src / main / another-src 

Den siste versjonen av plugin-programmet finner du i Maven Central.

Hvis vi nå kompilerer prosjektet vårt, lykkes byggingen.

4. Konklusjon

Vi har sett i denne artikkelen hvordan du setter opp Byggherre Maven-plugin for å jobbe med flere src-kataloger i et Maven-prosjekt.

Som alltid er hele kildekoden til eksemplene tilgjengelig på GitHub.


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