web-dev-qa-db-fra.com

Créer un fichier war à partir de Spring: boot project in Eclipse

Je suis assez nouveau sur Spring Boot et j'ai terminé une application qui fonctionne bien sur mon hôte local. Comme on m'a dit de le déployer en dehors de mon hôte local, par exemple sur un hôtel web ou un simulaire, j'ai besoin d'exporter le projet en tant que fichier de guerre et non en tant que fichier jar.

METTRE À JOUR!! J'exécute le projet en tant que Springproject généré dans Spring Initialzr et en utilisant Eclipse comme IDE.

Dans Eclipse, j'ai suivi les étapes

<packaging>war</packaging>

et

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

à partir de la page de référence de Spring Boot https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file

Dans mon projet j'utilise

<dependency>
        <groupId>org.Apache.Tomcat.embed</groupId>
        <artifactId>Tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

Dois-je ajouter la dépendance sprinng-boot-starter-Tomcat et ajouter celle-ci sur aswell ainsi que Tomcat-embed-jasper pour que ma dépendance soit comme ça?

<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>

Lorsque j'essaie d'exporter vers un fichier war dans Eclipse, Eclipse ne trouve pas mon projet. Il peut le trouver si j'essaie d'exporter Java> JAR FILE mais pas si j'essaie Web> WAR FILE

Quelqu'un sait-il ce que je fais mal et s'il est nécessaire d'exporter vers un fichier WAR pour le déployer sur un serveur externe?

8
bajen micke

Vous devez étendre **** SpringBootServletInitializer **** dans votre @SpringBootApplication

Vous n'avez pas besoin d'ajouter la dépendance **** sprinng-boot-starter-Tomcat **** pour la génération de fichiers war

enter image description here

Utilisez la configuration ci-dessous dans pom.xml

<packaging>war</packaging>

Configurez le chemin de génération pour votre projet et sélectionnez JDK

Faites un clic droit sur le projet> Exécuter en tant que> Installer Maven

Il générera le fichier war dans le dossier cible.

enter image description here

Copiez cette guerre et déployez-la sur n'importe quel serveur Web/d'application (je l'ai renommé demo.war).

Vous pouvez accéder à l'application en utilisant votre nom d'hôte suivi du nom du port et de l'application.

enter image description here

14
Neeraj Benjwal

Pour générer un fichier WAR dans STS (Spring Tools Suite): Exécutez as-> Maven Install

0
NELSON RODRIGUEZ

Si vous souhaitez déployer le projet Spring Boot en tant que fichier war, vous devez suivre trois étapes:

  1. Étend SpringBootServletInitializer

    @SpringBootApplication
    public class DemoApplication extends SpringBootServletInitializer {
    
    public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
    }
    
    
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(DemoApplication.class);
    }
    }
    

    si vous utilisez plusieurs classes principales, définissez-en une au démarrage

    <start-class>com.javavogue.DemoApplication</start-class>
    
    1. Mettre à jour l'emballage vers war pom.xml

       packaging war packaging
      
    2. Marqué le conteneur de servlet intégré comme fourni. à l'intérieur du fichier pom.

      Référence: Déployer un WAR de démarrage Spring sur le serveur Tomcat

0
Anuj Dhiman