Como criar um JAR executável com todas as dependências usando Maven

{lang: 'pt-BR'}

Algumas vezes precisamos criar uma aplicação standalone, que possua dependências e que gere apenas um arquivo JAR. É possível usar o Maven para fazer o build, gerenciar as dependências e ainda criar o arquivo MANIFEST.MF com as informações necessárias para que a aplicação rode sem precisarmos informar qual classe possui o método main().

O plugin que faz a mágica da geração do JAR incluindo todas as dependências é o maven-assembly-plugin. Ele irá incluir todos os arquivos .class junto com as classes de nossa aplicação.


    
        maven-assembly-plugin
        
            
                jar-with-dependencies
            
            
                
                    true
                    fully.qualified.MainClass
                
            
        
        
            
                make-my-jar-with-dependencies
                package
                
                    single
                
            
        
    

Para fazer o build em sua aplicação, simplesmente rode o maven:

$ mvn clean install

Para executar seu programa, faça:

$ java -jar target/suaApplicacao-jar.with-dependencies.jar
{lang: 'pt-BR'}