Vorwort
Spring -Boot -Projekte werden normalerweise in eingebetteten Tomcat- oder Jetty -Servern ausgeführt und verwenden selten Kriegspakete, um an externen Servicecontainern bereitzustellen. Selbst wenn sie in Linux platziert werden, starten sie normalerweise die Anwendungsklasse direkt. Manchmal müssen wir jedoch auf externe Server eingesetzt werden, was für Spring Boot etwas problematisch ist.
Ich werde unten nicht viel sagen. Schauen wir uns die detaillierte Einführung zusammen an.
Umweltaussage:
JDK: 1.8
Server: Alibaba Cloud, Ubuntu 16.04
Springboot: 1.5.9.Release
Zweck
Paket Springboot in Tomcat auf dem Remote -Server.
pom.xml
<? xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>waibao</groupId> <artifactId>project</artifactId> <version> 1.0-Snapshot </Version> <Packages> Krieg </packaging> <in <Strups> org.springFramework.Boot </Groupid> <artifactId> Spring-Boot-Starter-Parent </artifactId> <version> 1.5.9.REASE </Version> </parent <profertMents> </parents> <Properties> <Properties> <java. <Depelencies> <Deponcy> <GroupId> org.springFramework.boot </Groupid> <artifactID> Spring-Boot-Starter-Web </artifactid> </abhängig> <!-Entfernen Sie den Tomcat-Support und ändern <artifactId> Spring-Boot-Starter-Tomcat </artifactId> <Scope> Bereitgestellt </scope> </abhängig> <abhängigkeit> <GroupID> org.mybatis.spring.Boot </gruupId> <artifactId> myBatis-Spring-Start-Start-Startmodus> </artifactid> 1.3.1 </fusion-boot-starter </artifactId> </Version> -Stot-Start-Start-Start-Start-Start-Start-Start-Start-Start-Fusion> </artifactid> 1.3.1; <Depopenty> <gruppe> org.springframework <artifactId>nekohtml</artifactId> <version>1.9.22</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <gruppe> org.mybatis.spring.boot </GroupId> <artifactId> mybatis-pring-boot-starter </artifactId> <version> 1.3.1 </Version> </abhängig> <depeopcy> <gruppeId> org.spingFramework.boot </GroupID> <artifactid> sperractId> sperractId> sperractId> <artifactid> artifact> <artifactid> artifact> <artifactid> artifact> <artifactid> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>6.0.6</version> </dependency> <!-- Alibaba Connection Pool--> <dependency> <groupId>com.alibaba</groupId> <artifactId> druid </artifactId> <version> 1.1.5 </Version> </abhängig> <!-fastjson-> <depeaponcy> <Groupid> com.alibaba </gruppyID> <artifactID> Fastjson </artifactId> <version> 1.2.40 </Version> </relpycy> <! <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <version>1.5.9.RELEASE</version> <optional>true</optional> <scope>true</scope> </dependency> </dependencies> <build> <finalName>/testweb</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build></project>
Beachten
1. Das Maven-Plug-In kann das mit Springboot gelieferte Plug-In nicht verwenden. Ich habe dieses Plugin verwendet, um den folgenden Fehler zu melden
Nicht ausführende Ziel org.apache.maven.plugins: maven-jar-plugin: 2.6: jar (default-jar) für Projektprojekt: Ausführungsausfall-Jar des Ziels org.apache.maven.plugins: Maven-Jar-Plugin: 2.6: org.apache.maven.plugins: maven-jar-plugin: 2.6: jar: java.lang.exceptionininitializerError: null
Ändern Sie das Maven -Plugin an
<plugin> <GroupId> org.apache.maven.plugins </Groupid> <artifactId> maven-war-plugin </artifactId> <version> 2.4 </Version> <Configuration> </failonmingsingWebxml> false </failonsingwebxml> </configuration> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </pluging> </plugh
Es sollte beachtet werden, dass ich nicht web.xml habe. Fügen Sie also mehr hinzu
<Configuration> <FailonmissingWebxMl> Falsch </failonmissingWebxMl> </configuration>
2.
<Build> <Dendname> xxx </finalName> </build>
FinalName muss mit dem Kontext-Pfad in application.yml übereinstimmen.
3.. Sie müssen die Abhängigkeit von Tomcat ändern, um die Zeit zu kompilieren
<Depopentcy> <gruppe> org.springFramework.boot </Groupid> <artifactId> Spring-Boot-Starter-Tomcat </artifactid> <scope> bereitgestellt </scope> </abhängig>
4. Springboot -Eingangsklasse, Inherit SpringbootServletinitializer und Überschreibung
Protected SpringApplicationBuilder configure (SpringApplicationBuilder -Anwendung) {return application.sources (mainApplication.class); }wobei MainApplication.class die Eingangsklasse des Springboots ist.
Pack
Gehen Sie zum Stammverzeichnis des Projekts. Wenn Sie Idee verwenden, geben Sie hier direkt ein:
MVN Clean Package -dskiptests
Nach der Verpackung wird die entsprechende .war -Datei im Zielordner des Projekts generiert.
Hochladen
Werfen Sie einfach die Kriegsdatei unter Tomcats Webapps.
Ungelöste Probleme:
Ich wollte es ursprünglich in ein Glaspaket schaffen. Starten Sie dann den Springboot direkt. Wu Nai schaffte es in ein JAR-Paket und meldete immer wieder Fehler im Maven-Plug-In. Es kann nur in Kriegspakete getippt und auf Tomcat hochgeladen werden.
Wenn jemand dieses Problem gelöst hat, lassen Sie es mich bitte wissen.
In diesem Artikel wird gesagt, dass dies ein Fehler ist ...
https://issues.apache.org/jira/browse/msite-724
erneuern. . . .
Das Problem wurde gelöst. Sie können Springboot direkt in Glas verpacken und ausführen.
Grund:
<Plugins> <Pongin> <gruppe> org.springframework
Das offizielle Beispiel von Springboot verwendet dieses Plugin.
Maven lädt Maven-Jar-Plugin Version 2.4 und 2.6-Versionen automatisch herunter.
Maven wird jedoch standardmäßig auf Version 2.6 angewiesen. . Ich habe den von dem Projekt gemeldeten Fehler zu Beginn nicht bemerkt, dass Maven-Jar-Plugin 2.6jar unvereinbar ist. Dies führte dazu, dass der Fehler nicht gefunden wurde. .
Das heißt, Version 2.6 ist inkompatibel. Ändern Sie es einfach manuell in Version 2.4. Wie unten gezeigt:
<plugins> <plugin> <GroupId> org.springFramework </plugin> </plugins>
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit eines jeden hat. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation überlassen. Vielen Dank für Ihre Unterstützung bei Wulin.com.