Projeto Maven com vários diretórios de origem

Projeto Maven com vários diretórios de origem

1. Introdução

Às vezes, precisamos usar vários diretórios de origem em um projeto Java. Um exemplo de caso comum quando existem classes que são geradas automaticamente e colocadas em um diretório diferente.

Neste breve artigo, mostraremos comoset up Maven to work with additional source directories.

2. Adicionando outro diretório de origem

Supondo que já tenhamos um projeto Maven criado, vamos adicionar um novo diretório de origem chamadoanother-src na pastasrc/main.

Depois disso, vamos criar uma classe Java simples dentro desta pasta:

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

Vamos agora criar outra classe em nosso diretóriosrc/main/java que usa a classeFoo que acabamos de criar:

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

Nossa estrutura de projeto agora se parece com isso:

image

If we try to compile this project with Maven we get a compilation error porque a classeFoo não está incluída no projeto:

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

3. Usando o plug-inBuilder Helper

Com o Maven, podemos usar o pluginBuilder Helper para adicionar mais diretórios de origem. Este plug-in nos permite personalizar o ciclo de vida da construção de diferentes maneiras.

Um de seus objetivos é oadd-sources, que se destina a adicionar mais diretórios src ao projeto durante a fasegenerate-sources.

Podemos usá-lo em nosso projeto adicionando-o ao nossopom.xml:


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

A última versão do plugin pode ser encontrada emMaven Central.

Se compilarmos agora nosso projeto, a compilação será bem-sucedida.

4. Conclusão

Vimos neste artigo como configurar o pluginBuilder Helper Maven para trabalhar com vários diretórios src em um projeto Maven.

Como sempre, o código-fonte completo dos exemplos está disponívelover on GitHub.