Maven projekt több forrás könyvtárral

1. Bemutatkozás

Néha több forráskönyvtárat kell használnunk egy Java projektben. Gyakori eset, amikor vannak olyan osztályok, amelyek automatikusan generálódnak és egy másik könyvtárba kerülnek.

Ebben a rövid cikkben megmutatjuk, hogyan kell állítsa be a Maven-t további forráskönyvtárakkal való együttműködésre.

2. Másik forráskönyvtár hozzáadása

Ha egy Maven projektet már létrehoztunk, adjunk hozzá egy új forrás könyvtárat másik-src ban,-ben src / main mappába.

Ezután hozzunk létre egy egyszerű Java osztályt ebben a mappában:

nyilvános osztály Foo {public static String foo () {return "foo"; }}

Hozzunk létre most egy újabb osztályt a mi osztályunkban src / main / java könyvtár, amely a Foo az imént létrehozott osztály:

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

A projekt felépítése most így néz ki:

Ha megpróbáljuk ezt a projektet Maven-lel lefordítani, akkor fordítási hibát kapunk mert a Foo osztály nem szerepel a projektben:

[ERROR] ... / MultipleSrcFolders.java:[6,9] nem található szimbólum [ERROR] szimbólum: változó Foo [ERROR] hely: class com.baeldung.maven.plugins.MultipleSrcFolders

3. A Builder Helper Csatlakoztat

Maven-nel használhatjuk a Builder Helper plugin további forráskönyvtárak hozzáadásához. Ez a beépülő modul lehetővé teszi számunkra, hogy a build életciklusát különböző módon szabhassuk meg.

Az egyik célja a kiegészítő források, amely további src könyvtárakat kíván hozzáadni a projekthez a generál-források fázis.

Használhatjuk projektünkben, ha hozzáadjuk a sajátunkhoz pom.xml:

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

A bővítmény legújabb verziója a Maven Central oldalon található.

Ha most elkészítjük a projektünket, az építkezés sikeres lesz.

4. Következtetés

Ebben a cikkben láthattuk a Builder Helper Maven plugin több src könyvtárral való együttműködéshez egy Maven projektben.

Mint mindig, a példák teljes forráskódja elérhető a GitHubon.


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