Criar um jar executável
Vamos encerrar nosso exemplo criando um arquivo jar executável totalmente independente que pode ser executado em produção. Jars executáveis (às vezes chamados de "fat jars") são arquivos que contêm suas classes compiladas e os jars dependentes que seu código precisa para executar.
Jars executáveis e Java : Java não fornece nenhuma maneira padrão de carregar arquivos jar incorporados (isto é, arquivos jar também contêm arquivos jar). Isso é um problema se você deseja distribuir um aplicativo independente. Para resolver esse problema, muitos desenvolvedores usam jars "compartilhados". Um jar compartilhado simplesmente empacota as classes de todos os jars em um único "super jar". O problema com a abordagem jar compartilhada é que é difícil dizer quais bibliotecas estão disponíveis em seu aplicativo. Também pode ser um problema se o mesmo nome de arquivo (mas conteúdo diferente) existir em vários jars. O Spring Boot segue uma [rota diferente](…/X.Appendices/D. O executável jar format.md) e permite que você inline jars.
Para criar um jar executável, será necessário spring-boot-maven-plugin
adicionar ao nosso pom.xml. Insira o seguinte no nó de dependências:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Nota : O POM contém a configuração spring-boot-starter-parent
para vincular o destino do reempacotamento . <executions>
Se você não estiver usando um POM pai, precisará declarar essa configuração por conta própria. Consulte a documentação do plug-in para obter detalhes .
Salve seu pom.xml e execute a partir da linha de comando mvn package
:
$ mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myproject 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] .... ..
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject ---
[INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.3.0.BUILD-SNAPSHOT:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
Se você procurar no diretório de destino, deverá vê-lo myproject-0.0.1-SNAPSHOT.jar
. O arquivo deve ter cerca de 10Mb de tamanho. Se você quiser espiar por dentro, você pode executar jar tvf
:
$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
No diretório de destino, você também deve ver um pequeno myproject-0.0.1-SNAPSHOT.jar.original
arquivo chamado . Este é o arquivo jar original que o Maven criou antes do Spring Boot reempacotá-lo.
Para executar o aplicativo, você pode usar java -jar
o comando:
$ java -jar target/myproject-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.0.BUILD-SNAPSHOT)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.536 seconds (JVM running for 2.864)
Como antes, clique ctrl-c
para sair do programa suavemente.