Converter Spring Boot para arquivo war
Veja neste post como configurar um projeto em Spring Boot para gerar arquivo .war e instalar no tomcat
Última atualização em: | 12527 Visualizações
Por padrão, os projetos em Spring Boot não precisam de um container ou servidor para executar as aplicações. Ao executar o build, é gerado um arquivo .jar
o qual pode ser executado diretamente:
java -jar <meu-app>.jar
Onde
<meu-app>
deve ser o nome do arquivo.jar
.
Porém também é possível converter um projeto em Spring Boot para gerar um arquivo .war
, o qual pode ser realizado o deploy em um container web, como o tomcat.
Configurando o pom.xml
O primeiro passo é configurar o pom.xml
do seu projeto, vamos iniciar pela configuração do packaging
, mude esta configuração para war
. Veja:
<packaging>war</packaging>
O próximo passo é corrigir a dependência do tomcat (spring-boot-starter-tomcat
), adicionando <scope>provided</scope>
.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
Configurando a classe principal
O último passo, é configurar a classe principal do projeto para iniciar as configurações do Spring Boot ao ser iniciada pelo tomcat. Para isso precisamos estender a classe SpringBootServletInitializer
e implementar o método configure
. Veja:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
@SpringBootApplication
public class DemoClientApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoClientApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DemoClientApplication.class);
}
}
Pronto, após estas configurações já pode realizar o build
do projeto e obter o arquivo .war
dentro da pasta target. Para isso pode executar:
clean package
Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.