Maven-project met meerdere bronbestanden

1. Inleiding

Soms moeten we meerdere bronmappen gebruiken in een Java-project. Een veelvoorkomend voorbeeld als er klassen zijn die automatisch worden gegenereerd en in een andere directory worden geplaatst.

In dit korte artikel laten we zien hoe stel Maven in om met extra bronmappen te werken.

2. Een andere brondirectory toevoegen

Ervan uitgaande dat we al een Maven-project hebben gemaakt, laten we een nieuwe bronmap toevoegen met de naam Another-src in de src / main map.

Laten we daarna een eenvoudige Java-klasse maken in deze map:

openbare klasse Foo {openbare statische String foo () {retourneer "foo"; }}

Laten we nu een nieuwe klas maken in ons src / main / java directory die de Foo klasse die we zojuist hebben gemaakt:

openbare klasse MultipleSrcFolders {openbare statische leegte callFoo () {Foo.foo (); }}

Onze projectstructuur ziet er nu als volgt uit:

Als we dit project proberen te compileren met Maven, krijgen we een compilatiefout omdat de Foo klasse is niet inbegrepen in het project:

[ERROR] ... / MultipleSrcFolders.java:[6,9] kan symbool niet vinden [ERROR] symbool: variabele Foo [ERROR] locatie: class com.baeldung.maven.plugins.MultipleSrcFolders

3. Gebruik de Bouwer Helper Inpluggen

Met Maven kunnen we de Bouwer Helper plug-in om meer bronmappen toe te voegen. Met deze plug-in kunnen we de build-levenscyclus op verschillende manieren aanpassen.

Een van de doelen is de add-bronnen, die bedoeld is om meer src-mappen aan het project toe te voegen tijdens de genereren-bronnen fase.

We kunnen het in ons project gebruiken door het toe te voegen aan ons pom.xml:

 org.codehaus.mojo build-helper-maven-plugin 3.0.0 genereren-bronnen add-source src / main / another-src 

De nieuwste versie van de plug-in is te vinden in Maven Central.

Als we nu ons project samenstellen, lukt de build.

4. Conclusie

We hebben in dit artikel gezien hoe u het Bouwer Helper Maven-plug-in om met meerdere src-mappen in een Maven-project te werken.

Zoals altijd is de volledige broncode van de voorbeelden beschikbaar op GitHub.