Projet Maven avec plusieurs répertoires sources

Projet Maven avec plusieurs répertoires sources

1. introduction

Nous avons parfois besoin d'utiliser plusieurs répertoires sources dans un projet Java. Un exemple de cas courant lorsqu'il existe des classes générées automatiquement et placées dans un répertoire différent.

Dans ce court article, nous allons montrer commentset up Maven to work with additional source directories.

2. Ajout d'un autre répertoire source

En supposant que nous ayons un projet Maven déjà créé, ajoutons un nouveau répertoire source appeléanother-src dans le dossiersrc/main.

Ensuite, créons une classe Java simple dans ce dossier:

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

Créons maintenant une autre classe dans notre répertoiresrc/main/java qui utilise la classeFoo que nous venons de créer:

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

Notre structure de projet ressemble maintenant à ceci:

image

If we try to compile this project with Maven we get a compilation error car la classeFoo n'est pas incluse dans le projet:

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

3. Utilisation du pluginBuilder Helper

Avec Maven, nous pouvons utiliser le pluginBuilder Helper pour ajouter plus de répertoires source. Ce plugin nous permet de personnaliser le cycle de vie de la compilation de différentes manières.

L'un de ses objectifs est leadd-sources, qui est destiné à ajouter plus de répertoires src au projet pendant la phasegenerate-sources.

Nous pouvons l'utiliser dans notre projet en l'ajoutant à nospom.xml:


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

La dernière version du plugin se trouve dansMaven Central.

Si nous compilons maintenant notre projet, la construction réussit.

4. Conclusion

Nous avons vu dans cet article comment configurer le pluginBuilder Helper Maven pour qu'il fonctionne avec plusieurs répertoires src dans un projet Maven.

Comme toujours, le code source complet des exemples est disponibleover on GitHub.