Maven projekt s više izvornih direktorija

1. Uvod

Ponekad moramo koristiti više direktorija izvora u Java projektu. Uobičajeni slučaj kada postoje klase koje se automatski generiraju i smještaju u drugi direktorij.

U ovom ćemo kratkom članku pokazati kako to učiniti postavili Maven za rad s dodatnim direktorijima izvora.

2. Dodavanje drugog izvornog direktorija

Pod pretpostavkom da imamo Maven projekt već stvoren, dodajmo novi izvorni direktorij pod nazivom drugi-src u src / glavni mapu.

Nakon toga, kreirajmo jednostavnu Java klasu unutar ove mape:

javna klasa Foo {javni statički niz foo () {return "foo"; }}

Stvorimo sada još jedan razred u našem src / main / java direktorij koji koristi Foo razred koji smo upravo kreirali:

javna klasa MultipleSrcFolders {public static void callFoo () {Foo.foo (); }}

Naša struktura projekta sada izgleda ovako:

Ako ovaj projekt pokušamo kompilirati s Mavenom, dobit ćemo pogrešku u kompilaciji jer Foo razred nije uključen u projekt:

[POGREŠKA] ... / MultipleSrcFolders.java: [6,9] ne može pronaći simbol [GREŠKA] simbol: varijabla Foo [POGREŠKA] lokacija: klasa com.baeldung.maven.plugins.MultipleSrcFolders

3. Korištenje Graditelj Pomoćnik Uključiti

S Mavenom možemo koristiti Graditelj Pomoćnik dodatak za dodavanje više direktorija izvora. Ovaj nam dodatak omogućuje prilagodbu životnog ciklusa izrade na različite načine.

Jedan od njegovih ciljeva je dodaci-izvori, koji je namijenjen dodavanju više src direktorija u projekt tijekom generirati-izvori faza.

Možemo ga koristiti u našem projektu dodavanjem u naš pom.xml:

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

Najnoviju verziju dodatka možete pronaći u Maven Central.

Ako sada kompajliramo naš projekt, gradnja uspijeva.

4. Zaključak

U ovom smo članku vidjeli kako postaviti Graditelj Pomoćnik Dodatak Maven za rad s više direktorija src u projektu Maven.

Kao i uvijek, puni izvorni kod primjera dostupan je na GitHub-u.


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