Prefacio
Los proyectos de arranque de primavera generalmente se ejecutan en servidores Tomcat o Jetty integrados, y rara vez usan paquetes de guerra para implementar contenedores de servicios externos. Incluso si se colocan en Linux, generalmente inician la clase de aplicación directamente. Sin embargo, a veces necesitamos desplegar en servidores externos, lo cual es un poco problemático para el arranque de primavera.
No diré mucho a continuación, echemos un vistazo a la introducción detallada juntos.
Declaración ambiental:
JDK: 1.8
Servidor: Alibaba Cloud, Ubuntu 16.04
SpringBoot: 1.5.9.libe
Objetivo
Paquete Springboot en TomCat en el servidor remoto.
pom.xml
<? xml versión = "1.0" encoding = "utf-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschemainstance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelever> 4.0.0 </modelversion> <MoupRoMid> waibao </spopy> <artifactid> Proyecto </artes <versión> 1.0-snapshot </versewer> <compagaging> war </packaging> <-parent> <grupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </arfactid> <versión> 1.5.9.release </versión> </rent> <propiations> <java.version> 1.8 <java.versionione. <pendencies> <pendency> <uproupid> org.springframework.boot </proupid> <artifactid> spring-boot-starter-web </artifactid> </pendency> <!-Eliminar el soporte de TOMCAT y cambiar al soporte de tiempo de compilación-> <pendency> <proupid> org.springframework.Boot </groupid> <artifactID> spring-boot-starter-tomcat </artifactid> <cope> proporcionó </lopope> </pendency> <pendency> <proupid> org.mybatis.spring.boot </groupid> <artifactID> mybatis-spring-sproot-starter </artifactid> <versersever> <Spendency> <MoupRoMID> org.springframework.boot </groupid> <artifactid> spring-boot-starter-thymeleaf </artifactid> </pendency> <! Configuración del modo no rictamente de thymeleaf, requiere la dependencia-> <ependence> <grupo> net.source.nekohtm </groupid> <AtifactId> nekohtml </artifactid> <versión> 1.9.22 </versión> </pendency> <pendency> <uproupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-jdbc </artifactid> </dependency> <epelepentency> <uproupid> org.mybatis.sspers.ss.sBoOt. <AtifactId> MyBatis-Spring-Boot-Starter </artifactid> <versión> 1.3.1 </versión> </pendency> <pendency> <MoupRoMID> org.springframework.boot </proupId> <AtifactId> spring-boot-starter-test </artifiCid> <cope> test </scope> </cope> <fependency> <MoupRid> mysql </groupid> <artifactid> mysql-confonnector-java </artifactid> <verserse> 6.0.6 </versewers> </dependency> <!-ALIBABA Connection Pool-> <pendency> <ProupId> com.alibaba </groupid> <AtifactId> Druid </artifactid> <Version> 1.1.5 </Versión </Versión </Versión </Versión </Versión </ArtifactId> Druid </artifactid> < <versión> 1.5.9.release </ververy> <spectional> true </pectional> <cope> true </cope> </pendency> </dependencias> <construction> <finalName>/testWeb </finalName> <glugins> <glugin> <proupid> org.apache.maven.plugins </groupid> <artifactid> maven-war-plugin </artemid> </artem. <Persion> 2.4 </verse> <necuteation> <ShaifonMissingWebxml> false </failonmissingwebxml> </figuration> </plugin> </glugins> </build> </jection>
Aviso
1. El complemento Maven no puede usar el complemento que viene con SpringBoot. Usé este complemento para informar el siguiente error
No se pudo ejecutar la meta org.apache.maven.plugins: maven-jar-plugin: 2.6: jar (default-jar) en el proyecto Proyecto: ejecución predeterminada-jar de gol de porter org.apache.maven.plugins: maven-jar-plugin: 2.6: jar: java.lang.ExceptionInitializerError: NULL
Modificar el complemento Maven a
<glugin> <MoupRoid> org.apache.maven.plugins </proupid> <artifactid> maven-war-plugin </arfactid> <verserse> 2.4 </versewers> <figuration> <AnstaTonMissingWebxml> false </failEnmissingWebxml> </tugin> </tugin> </tugin>
Cabe señalar que porque no tengo web.xml. Así que agrega más
<Configuration> <NaquonMissingWebxml> false </failonmissingwebxml> </figuration>
2.
<Ditor> <finalName> xxx </finalName> </build>
FinalName debe ser consistente con el camino de contexto en Application.yml.
3. Debe cambiar la dependencia de Tomcat para compilar el tiempo
<Spendency> <MoupRoMID> org.springframework.boot </groupid> <artifactID> spring-boot-starter-Tomcat </artifactid> <cope> proporcionó </cope> </pendency>
4. Clase de entrada SpringBoot, Hereding SpringbootServletinitializer y sobrescribir
SpringApplicationBuilder protegido Configurar (SpringApplicationBuilder Application) {return Application.sources (MainApplication.Class); }Donde MainApplication.Class es la clase de entrada de Springboot.
Embalar
Vaya al directorio raíz del proyecto. Si está usando Idea, ingrese directamente aquí:
paquete de limpieza mvn -dskipTests
Después del empaque, el archivo .war correspondiente se generará en la carpeta de destino del proyecto.
Subir
Simplemente tire el archivo de guerra bajo las aplicaciones web de Tomcat.
Problemas no resueltos:
Originalmente quería convertirlo en un paquete de jar. Luego comience a Springboot directamente. Wu Nai llegó a un paquete JAR y siguió informando errores en el complemento Maven. Solo se puede escribir en paquetes de guerra y cargarse a Tomcat.
Si alguien ha resuelto este problema, hágamelo saber.
En este artículo, se dice que este es un error ...
https://issues.apache.org/jira/browse/msite-724
renovar. . . .
El problema se ha resuelto. Puede empaquetar Springboot en JAR directamente y ejecutarlo.
razón:
<glugins> <glugin> <uproupid> org.springframework.boot </proupid> <artifactid> spring-boot-maven-plugin </arfactid> </glugin> </glugins>
El ejemplo oficial dado por SpringBoot es usar este complemento.
Maven descargará automáticamente las versiones Maven-Jar-Plugin versión 2.4 y 2.6.
Sin embargo, Maven dependerá de la versión 2.6 de forma predeterminada. . Al principio, no noté el error informado por el proyecto de que Maven-Jar-Plugin 2.6JAR es incompatible. Esto dio como resultado que el error no se encontrara. .
Es decir, la versión 2.6 es incompatible. Simplemente cámbielo manualmente a la versión 2.4. Como se muestra a continuación:
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> </glugin> </glugins>
Resumir
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierto valor de referencia para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.