Maison  >  Article  >  Java  >  Introduction détaillée du package war et du package jar dans springboot (exemple de code)

Introduction détaillée du package war et du package jar dans springboot (exemple de code)

不言
不言avant
2018-11-27 17:18:313119parcourir

Cet article vous apporte une introduction détaillée (exemple de code) sur le package war et le package jar dans springboot. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Ce que je partage avec vous dans cet article, c'est d'utiliser maven pour créer des packages war et des packages jar dans springboot ; de manière générale, war peut être directement placé sous les webapps de Tomcat après avoir été configuré pour décompresser automatiquement war. , et jar est généralement un déploiement et un démarrage en ligne de commande

Tout d'abord, pratiquons comment générer un package war, qui peut être divisé en trois étapes :

  • Transformation de l'entrée du programme

  • Exclure le Tomcat intégré Springboot

  • Configurer l'entrée du programme dans le plugin spring-boot-maven-plugin

Entrée du programme Pour la transformation, nous devons bloquer l'entrée principale de Springboot, puis hériter de SpringBootServletInitializer et réécrire la méthode de configuration. Le code spécifique est le suivant :

@SpringBootApplication
public class WebApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(WebApplication.class);
    }
//    public static void main(String[] args){
//
//    }
}

Exclure le Tomcat intégré de Springboot, par défaut Springboot est intégré au Tomcat intégré, car la guerre doit être envoyée au Tomcat sur notre serveur. n'est pas nécessaire. Vous pouvez configurer le blindage dans maven comme suit :

b86990c77ec45bfad4c402ad0f859e24
b4b38e33757a6497aa8690936b905cc1
    05a8acc5c31084a4f61ade01873802caorg.springframework.boot192ca2f7b8c770b01c8f81e6bdd5b947
    9bc4cbb67f66e148869423c0d27e5f90spring-boot-starter-tomcatb68fb17cb904a46b73e6272850323873
    06db57cb000bdd2564c5b32a302b10e2provided03b1008234ba0cf6ad3c873aea327e8a
09a0e22e5aaafd848ae04665be625b91

Ici, le package tomcat est exclu en définissant la portée sur fournie. Le package tomcat est inclus dans le framework springboot. La fonction par défaut de scope est compiler, compiler, tester et exécuter

spring L'entrée du programme est configurée dans le plug-in -boot-maven-plugin Nous avons. a bloqué l'entrée principale ci-dessus, mais Tomcat utilise toujours la classe de démarrage comme entrée, elle doit donc être configurée pour démarrer mainClass :

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <!--war包-执行程序入口 -->
    <configuration>
        <mainClass>com.platform.WebApplication</mainClass>
    </configuration>
</plugin>

Enfin, spécifiez l'emballage du projet d'entrée comme type de guerre

1 <packaging>war</packaging>

Comme ci-dessus, nos préparatifs sont terminés. Ensuite, nous venons juste d'emballer le colis. La capture d'écran après génération est la suivante :

Le contenu du package war est les parties META-INF et WEB-INF. Téléchargeons la guerre sur Tomcat sous Linux. webapps, en général, la configuration de Tomcat décompressera automatiquement le package war. J'ai déjà écrit une interface API ici. Après une opération réussie, elle s'affichera normalement dans le navigateur :

Ensuite, nous commençons à construire le package jar. Les étapes sont similaires à celles de la guerre, mais l'inverse consiste à supprimer le contenu du commentaire :

  • Restaurer l'entrée principale (main). généré par le modèle Springboot, ne le faites pas. Aucune modification)

  • Supprimer la configuration qui exclut Tomcat (cette configuration n'est pas incluse par défaut)

  • Utilisez le plugin maven-jar-plugin pour empaqueter et spécifier l'entrée du programme et diverses exclusions d'inclusions

Restaurer l'entrée principale sans l'annoter, principalement pour l'opération d'entrée principale qui a été annotée juste pour la guerre. Généralement, le modèle springboot est utilisé pour le générer par défaut :

public static void main(String[] args) throws ParseException, Exception {
    SpringApplication springApplication = new SpringApplication(WebApplication.class);
    springApplication.setBannerMode(Banner.Mode.OFF);
    springApplication.run(args);
}

Supprimez la configuration pour exclure Tomcat (il n'existe pas de tel configuration par défaut). La même étape ajoute également la configuration pour exclure Tomcat for war. Supprimez-le simplement directement Supprimer :

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

Utilisez maven-. plug-in jar-plugin à empaqueter, spécifiez l'entrée du programme et diverses inclusions |, configurez ici certains éléments via le plug-in jar, spécifiez le fichier de configuration et l'entrée principale :

<!--打jar包-->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <archive>
            <manifest>
                <!--<addClasspath>true</addClasspath>-->
                <!--<classpathPrefix>lib/</classpathPrefix>-->
                <!--main入口-->
                <mainClass>com.platform.WebApplication</mainClass>
            </manifest>
        </archive>
        <!--包含的配置文件-->
        <!--<includes>-->
        <!--<include>*.yml</include>-->
        <!--<include>*.properties</include>-->
        <!--<include>templates/**</include>-->
        <!--<include>static/**</include>-->
        <!--<include>*.xml</include>-->
        <!--</includes>-->
    </configuration>
</plugin>

Enfin, spécifiez l'emballage du projet d'entrée comme type de guerre :

1 <packaging>jar</packaging>

Après avoir terminé les étapes ci-dessus, vous pouvez voir le pot réussi package, comme le montre la figure :

Enfin, transmettez java -jar web-0.0.01 sous Linux Démarrez simplement le .SN...jar.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer