Maven-Projekt mit mehreren Quellverzeichnissen

Maven-Projekt mit mehreren Quellverzeichnissen

1. Einführung

In einem Java-Projekt müssen manchmal mehrere Quellverzeichnisse verwendet werden. Ein häufiges Beispiel für Klassen, die automatisch generiert und in einem anderen Verzeichnis abgelegt werden.

In diesem kurzen Artikel zeigen wir, wie manset up Maven to work with additional source directories macht.

2. Hinzufügen eines weiteren Quellverzeichnisses

Angenommen, wir haben bereits ein Maven-Projekt erstellt, fügen wir ein neues Quellverzeichnis mit dem Namenanother-src in den Ordnersrc/main ein.

Danach erstellen wir eine einfache Java-Klasse in diesem Ordner:

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

Erstellen wir jetzt eine weitere Klasse in unserem Verzeichnissrc/main/java, die die soeben erstellte KlasseFooverwendet:

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

Unsere Projektstruktur sieht jetzt so aus:

image

If we try to compile this project with Maven we get a compilation error, da die KlasseFoo nicht im Projekt enthalten ist:

[ERROR] .../MultipleSrcFolders.java:[6,9] cannot find symbol
[ERROR]   symbol:   variable Foo
[ERROR]   location: class com.example.maven.plugins.MultipleSrcFolders

3. Verwenden desBuilder Helper Plugins

Mit Maven können wir das PluginBuilder Helperverwenden, um weitere Quellverzeichnisse hinzuzufügen. Mit diesem Plugin können wir den Build-Lebenszyklus auf verschiedene Arten anpassen.

Eines seiner Ziele istadd-sources, mit dem dem Projekt während dergenerate-sources-Phase weitere src-Verzeichnisse hinzugefügt werden sollen.

Wir können es in unserem Projekt verwenden, indem wir es zu unserenpom.xml hinzufügen:


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

Die neueste Version des Plugins finden Sie inMaven Central.

Wenn wir jetzt unser Projekt kompilieren, ist der Build erfolgreich.

4. Fazit

In diesem Artikel erfahren Sie, wie Sie das Maven-PluginBuilder Helpero einrichten, dass es mit mehreren src-Verzeichnissen in einem Maven-Projekt funktioniert.

Wie immer ist der vollständige Quellcode der Beispieleover on GitHub verfügbar.