Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create war file from Spring:boot project in Eclipse

I am pretty new to Spring Boot and I have completed a application that works well on my localhost. As I have been told to deploy it outside my localhost on for example a webbhotel or simular I need to export the project as a war-file and not as a jar-file.

UPDATE!! I run the project as a Springproject generated in Spring Initialzr and using Eclipse as a IDE.

In Eclipse I have followed the steps

<packaging>war</packaging>

and

<dependencies>
    <!-- … -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- … -->
</dependencies>

from Spring Boot Referencepage https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file

In my project I use

<dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

Do I need to add the sprinng-boot-starter-tomcat dependency and add provided to that on aswell as tomcat-embed-jasper so that my dependency will be like this?

<dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
     <dependency>
    <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

When I try to export to war-file in Eclipse, Eclipse can't find my project. It can find it if I try to export Java>JAR FILE but not if I try Web>WAR FILE

Do anyone know what I am doing wrong and if it is neccesary to export to a WAR-file to deploy to a external server?

like image 922
bajen micke Avatar asked Dec 20 '17 14:12

bajen micke


People also ask

Can we create a WAR file from spring boot application?

When building RESTful Web Services with Spring Boot we can either package our Spring Boot App as an executable JAR file and run it with built-in Tomcat or we can create a deployable WAR file and then deploy it into a stand along Tomcat or Jetty.


2 Answers

You need to extend ****SpringBootServletInitializer**** in your @SpringBootApplication

You don't need to add the ****sprinng-boot-starter-tomcat**** dependency for war file generation

enter image description here

Use below configuration in pom.xml

<packaging>war</packaging>

Configure Build Path for your project and select JDK

Right click on project > Run As > Maven Install

It will generate the war file inside target folder.

enter image description here

Copy this war and deploy to any web/application server (I have renamed it to demo.war).

You can access the app by using your host name followed by the port and app name.

enter image description here

like image 113
Neeraj Benjwal Avatar answered Sep 23 '22 19:09

Neeraj Benjwal


To generate WAR file in STS (Spring Tools Suite): Run as-> Maven Install

like image 44
NELSON RODRIGUEZ Avatar answered Sep 23 '22 19:09

NELSON RODRIGUEZ