Projekt Maven s viacerými zdrojovými adresármi

1. Úvod

V projekte Java niekedy potrebujeme použiť viac zdrojových adresárov. Bežný príklad prípadu, keď existujú triedy, ktoré sa generujú automaticky a umiestnia sa do iného adresára.

V tomto krátkom článku si ukážeme, ako na to nastaviť Maven tak, aby pracoval s ďalšími zdrojovými adresármi.

2. Pridanie iného zdrojového adresára

Za predpokladu, že už máme vytvorený projekt Maven, pridajme nový zdrojový adresár s názvom another-src v src / main priečinok.

Potom vytvorme jednoduchú triedu Java v tomto priečinku:

public class Foo {public static String foo () {return "foo"; }}

Poďme teraz vytvoriť ďalšiu triedu v našej src / main / java adresár, ktorý používa Foo trieda, ktorú sme práve vytvorili:

verejná trieda MultipleSrcFolders {public static void callFoo () {Foo.foo (); }}

Naša štruktúra projektu teraz vyzerá takto:

Ak sa pokúsime kompilovať tento projekt s Mavenom, objaví sa chyba kompilácie pretože Foo trieda nie je zahrnutá v projekte:

[ERROR] ... / MultipleSrcFolders.java:[6,9] nemôže nájsť symbol [ERROR] symbol: premenná Foo [ERROR] umiestnenie: trieda com.baeldung.maven.plugins.MultipleSrcFolders

3. Pomocou Pomocník staviteľa Zapojiť

S Mavenom môžeme použiť Pomocník staviteľa plugin na pridanie ďalších zdrojových adresárov. Tento doplnok nám umožňuje prispôsobiť životný cyklus zostavenia rôznymi spôsobmi.

Jedným z jeho cieľov je doplnkové zdroje, ktorý je určený na pridanie ďalších adresárov src do projektu počas generovať zdroje fáza.

Môžeme ho použiť v našom projekte tak, že ho pridáme do nášho pom.xml:

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

Najnovšiu verziu pluginu nájdete v Maven Central.

Ak teraz zostavíme náš projekt, bude zostavenie úspešné.

4. Záver

V tomto článku sme videli, ako nastaviť Pomocník staviteľa Doplnok Maven na prácu s viacerými adresármi src v projekte Maven.

Celý zdrojový kód príkladov je ako vždy k dispozícii na serveri GitHub.


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