El proyecto SpringBoot se implementa en Alibaba Cloud ESC y se ejecuta en segundo plano.

Listo

  1. Proyecto SpringBoot
    Inserte la descripción de la imagen aquí

Entre ellos, el uso de herramientas de gestión de proyectos Maven

  1. Linux

Mi distribución de Linux es CentOS 7, que es un
plan de "práctica en línea" para estudiantes de Alibaba Cloud Server . Los estudiantes pueden recibir un servidor de 6 meses de forma gratuita, de hecho, los estudiantes no son caros para comprar un servidor.

  1. Conexión remota a las herramientas de Linux
    Xftp, Xshell es muy fácil de usar

Operación Linux (1) Operación básica: inicio de sesión remoto y gestión de usuarios


Empaquete el proyecto

Sabemos que SpringBoot tiene Tomcat incorporado, que solo necesita empaquetarse en un archivo jar y ejecutarse en Linux

Si está utilizando Maven para administrar el proyecto, puede
empaquetarlo directamente a través de Maven, hacer clic en el lado derecho de Maven Projects , hacer doble clic en el paquete se empaquetará automáticamente
(Windows también puede usar el comando cmd para empaquetar en la carpeta Maven)
Inserte la descripción de la imagen aquí

Este problema puede ocurrir:

Running com.myblog.blog.BlogApplicationTests
Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 0.002 sec <<< FAILURE! - in com.myblog.blog.BlogApplicationTests
initializationError(com.myblog.blog.BlogApplicationTests)  Time elapsed: 0.001 sec  <<< ERROR!
java.lang.Exception: The class com.myblog.blog.BlogApplicationTests is not public.

Inserte la descripción de la imagen aquí

Causa falla de empaque

Inserte la descripción de la imagen aquí

Este es el componente maven-surefire-plugin que falta en Maven

Agregar bajo la etiqueta build-> plugins

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>

Este es el empaque exitoso
Inserte la descripción de la imagen aquí

Vaya a la carpeta de destino debajo de su proyecto para encontrar el archivo jar, como mi dirección esD:\JavaProject\blog\SpringBootBlog\target\blog-0.0.1-SNAPSHOT.jar

Inserte la descripción de la imagen aquí

Transfiere este paquete jar a Linux


Linux corriendo

Coloque el paquete jar en el directorio que desea ejecutar

Lo puse en / opt / blog
Inserte la descripción de la imagen aquí

Necesita instalar jdk en Linux (necesita ejecutar el proyecto jar)

Nota: Si su base de datos se coloca en Linux,
después de todo, SpringBoot verificará la conexión de la base de datos durante la fase de ejecución

Nota: Alibaba Cloud necesita configurar un grupo de seguridad.
Hay una configuración de grupo de seguridad en el lado izquierdo de la consola
Inserte la descripción de la imagen aquí

Haga clic para configurar reglas

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Haga clic para crear rápidamente una regla , debe cambiar tres lugares:
número de puerto del grupo de seguridad 8080/8080 (3306 es el número de puerto del servidor Mysql)
1 Prioridad: cuanto menor sea la prioridad, mayor
será el objeto autorizado 0.0.0.0/0: permita todo el acceso IP
Inserte la descripción de la imagen aquí

ok, la prioridad está establecida

Ejecute el proyecto jar:java -jar 项目名

Inserte la descripción de la imagen aquí

Sale el ícono springboot (cambié el ícono springboot a NO BUG)

La operación puede informar errores:

o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured.

El puerto 8080 está ocupado.

Primero verifique el número de puerto:netstat -tunlp |grep 8080

Hay un proceso que ocupa mi puerto 8080

Inserte la descripción de la imagen aquí

Puede matar este proceso: kill -9 2814
-9 se ve obligado a matar este proceso, 2814 es el número de proceso que ocupa mi puerto

8080 es gratis después de matar
Inserte la descripción de la imagen aquí

Ejecutar
Inserte la descripción de la imagen aquí
bien nuevamente , la operación es exitosa, acceder al proyecto a través de la IP pública (si no es accesible, puede ser un problema de firewall iptables, firewall)

Inserte la descripción de la imagen aquí
Debido a que es una interfaz de línea de comando, nuestra interfaz es la consola SpringBoot
Inserte la descripción de la imagen aquí

Ctrl + C para salir, volver
Inserte la descripción de la imagen aquí

Pero el problema es que cuando cerramos, SpringBoot se cierra,
Inserte la descripción de la imagen aquí
y el efecto que queremos es que el servidor en la nube continúe ejecutando el servidor en segundo plano.


Continuamente corriendo en segundo plano

Puede escribir un paso de shell para completar

Crear uno en el directorio actualstartup.sh
Inserte la descripción de la imagen aquí

vim startup.sh

El comando es de dos líneas, la primera línea no es un comentario cuando se ejecuta, significa que este script usa / bin / sh para explicar la ejecución, el intérprete explica
la dirección de la segunda línea para escribir su propio archivo jar, el mío es / opt / blog / blog -0.0.1-SNAPSHOT.jar

#!/bin/sh
nohup java -jar /opt/blog/blog-0.0.1-SNAPSHOT.jar &                                              

Después de escribir el script, no hay permiso de ejecución al principio, y hay permisos de configuración chmod +x startup.shpara otorgar permisos ejecutables

Ejecutar script de shell./startup.sh

Ejecutar en segundo plano, la información de la consola se colocará en nohup.out
Inserte la descripción de la imagen aquí

También puede usar el proyecto en SpringBoot cerrando Xshell


Conclusión

El proyecto finalmente se implementará en Linux.
Además, bienvenido a visitar mi blog personal

Publicado 121 artículos originales · ganó 31 · vistas 7869

Supongo que te gusta

Origin blog.csdn.net/key_768/article/details/105413813
Recomendado
Clasificación