Préface
Les projets Spring Boot sont généralement exécutés dans des serveurs Tomcat ou Je jetant intégrés, et ils utilisent rarement des packages de guerre pour se déployer vers des conteneurs de service externes. Même s'ils sont placés dans Linux, ils démarrent généralement la classe d'application directement. Cependant, nous devons parfois déployer sur des serveurs externes, ce qui est un peu gênant pour Spring Boot.
Je ne dirai pas beaucoup ci-dessous, jetons un coup d'œil à l'introduction détaillée ensemble.
Énoncé environnemental:
JDK: 1.8
Serveur: Cloud Alibaba, Ubuntu 16.04
Springboot: 1.5.9.
But
Package Springboot dans Tomcat sur le serveur distant.
pom.xml
<? xml version = "1.0" Encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" XSI: ScheMalation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modersversion> 4.0.0 </débride> </ artifact> waibao </proncID> <ArtifActid> Project </ ArtiFact> <version> 1.0-snapshot </-version> <packaging> war </ packaging> <parent> <proupId> org.springframework.boot </prouverid> <lefactive> printemps-boot-starter-Parent </ ArtifactId> <Dersion> 1.5.9.9release </preent> </parepperties> <java.version> 1.8 <java <Dependance> <Dependency> <ProupId> org.springFramework.boot </prôdId> <ArtifActid> printemps-boot-starter-web </ artifactid> </dependency> <! - Supprimez la prise en charge de Tomcat et changez en support de compilation en temps <ArtefactId> Spring-Boot-starter-tomcat </ artifactid> <ccope> fourni </ccope> </dependency> <dependency> <proupId> org.mybatis.spring.boot </proupId> <Artistactid> Mybatis-Spring-boot-starter </-artifactid> <version> 1.3.1 </De version> <dependency> <proupId> org.springframework.boot </proupId> <ArtifactId> printemp-boot-starter-thymeleaf </retifactid> </dEpendency> <! - Configuration du mode non-strict de thymeleaf, nécessite la dépendance -> <pependance> <proupId> net.sourceForge.nekohtml </preendency> <ArtefactId> nekohtml </letefactive> <in version> 1.9.22 </-version> </dpendance> <dependency> <proupId> org.springframework.boot </proncID> <Artefactive> printemp-boot-starter-jdbc </letifactid> </dedency> </petenddency> <proupId> org.Mybatis.boot </pedency> <proupId> org.Mybatis.boot </petenddenc <ArtefactId> Mybatis-Spring-Boot-starter </ artifactId> <DERNÉRATEUR> 1.3.1 </ version> </Dependency> <Dedency> <ProupId> org.springframework.boot </proped> <Artefactid> Spring-Boot-Starter-Test </stifactid> <pope> Test </cope> <GroupId> MySQL </rom grouped> <Artifactid> MySQL-Connector-Java </ Artifactid> <Dersion> 6.0.6 </ Version> </ Dependency> <! - Alibaba Connection Pool -> <Dedency> <proupId> com.alibaba </proupId> <eRtifactid> DRUID </ Artifactid> <Dudition> 1.1. FastJson -> <Dedency> <GroupId> com.alibaba </rombasid> <letifactive> fastjson </ artifactid> <version> 1.2.40 </ version> </dependency> <! - Hot Deployment -> <Dedency> <proupId> org.springframework.boot </proupId> <ArtiFactid> Spring-Boot-boot-devtools </prounid> <version> 1.5.9.release </ version> <Orativesal> true </ optional> <ccope> true </ccope> </ Dependency> </Dependance> <Duild> <inalName> / TestWeb </inalName> <Glugins> <Glugin> <ProupID> org.apache.maven.plugins </prouverId> <ArtifActid> maven-War-Plugin </prounid> <ArtifActid> Maven-War-Plugin </prounid> <ArtifActid> Maven-War-Plugin </prounid> <ArtifActid> Maven-War-PLLIGIND> <version> 2.4 </ version> <In configuration> <ImmailMissingWebxml> FAUX </ failLiMissingWebxml> </ Configuration> </ Plugin> </ Plugins> </ Build> </ Project>
Avis
1. Le plug-in Maven ne peut pas utiliser le plug-in fourni avec Springboot. J'ai utilisé ce plugin pour signaler l'erreur suivante
Échec de l'exécution de but org.apache.maven.plugins: maven-jar-plugin: 2.6: jar (par défaut-jar) sur le projet Project: exécution par défaut-jar de but org.apache.maven.plugins: maven-jar-plagin: 2.6: Jar a échoué: une incompatibilité API a été invoquée lors de l'exécution: 2,6: Jar Failli org.apache.maven.plugins: Maven-Jar-Plugin: 2.6: Jar: Java.lang.ExceptionIninItializerError: Null
Modifier le plugin maven pour
<s plugin> <proupId> org.apache.maven.plugins </prômId> <ArtifactId> Maven-War-Plugin </ Artifactid> <DERNÉRATION> 2.4 </DERNIFRIENT> <FONFIGURATION> <IMEMONIMISSINGWEBXML> FAUX </ FAILOnMissingWebxml> </FIGIGURATION> </GLIGIN>
Il convient de noter que parce que je n'ai pas web.xml. Alors ajoutez plus
<FIFIGRAGE> <CailonMissingWebxml> FALSE </ FailLOnMissingWebxml> </FIGIGURATION>
2
<fuild> <inalName> xxx </inalName> </Duild>
Le nom final doit être cohérent avec le chemin de contexte dans Application.yml.
3. Vous devez modifier la dépendance de Tomcat pour compiler le temps
<dependency> <proupId> org.springframework.boot </rombasid> <ArtifactId> printemps-boot-starter-tomcat </retifactid> <ccope> fourni </cope> </Dependency>
4. Classe d'entrée de Springboot, héritage de SpringbootServletinitializer et écraser
SpringApplicationBuilder Configuration protégé (application SpringApplicationBuilder) {return application.sources (mainApplication.class); }où MainApplication.class est la classe d'entrée de Springboot.
Paquet
Accédez au répertoire racine du projet. Si vous utilisez une idée, entrez directement ici:
Package Clean MVN -DSKIPTESTS
Après emballage, le fichier .war correspondant sera généré dans le dossier cible du projet.
Télécharger
Jetez simplement le fichier de guerre sous le Web des Webcat.
Problèmes non résolus:
Je voulais à l'origine en faire un package en pot. Démarrez ensuite directement Springboot. Wu Nai a fait un package JAR et a continué à signaler les erreurs dans le plug-in Maven. Il ne peut être tapé que dans des packages de guerre et téléchargés sur Tomcat.
Si quelqu'un a résolu ce problème, faites-le moi savoir.
Dans cet article, il est dit qu'il s'agit d'un bug ...
https://issues.apache.org/jira/browse/msite-724
renouveler. . . .
Le problème a été résolu. Vous pouvez emballer directement le saut dans le pot et l'exécuter.
raison:
<flugins> <harin> <proupId> org.springframework.boot </prôdId> <Artifactid> Spring-Boot-Maven-Plugin </ ArfactId> </Glugin> </Glugins>
L'exemple officiel donné par Springboot utilise ce plugin.
Maven téléchargera automatiquement les versions Maven-Jar-Plugin version 2.4 et 2.6.
Cependant, Maven s'appuiera sur la version 2.6 par défaut. . Je n'ai pas remarqué l'erreur signalée par le projet au début que Maven-Jar-Plugin 2.6jar est incompatible. Cela a entraîné l'erreur qui ne soit pas trouvée. .
Autrement dit, la version 2.6 est incompatible. Changez-le manuellement en version 2.4. Comme indiqué ci-dessous:
<Lands Plugins> <Glugin> <GroupId> org.springFramework.boot </romproudId> <ArtifActid> Spring-Boot-Maven-Plugin </ ArfactId> </Glugin> <Glugin> <ProupID> org.apache.maven.plugins </prougId> <Artifactid> Maven-Jar-Plugin </tifactive> </ version> 2.4. </ plugin> </ plugins>
Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.