Listo
- Proyecto SpringBoot
Entre ellos, el uso de herramientas de gestión de proyectos Maven
- 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.
- 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)
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.
Causa falla de empaque
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
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
Transfiere este paquete jar a Linux
Linux corriendo
Coloque el paquete jar en el directorio que desea ejecutar
Lo puse en / opt / blog
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
Haga clic para configurar reglas
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
ok, la prioridad está establecida
Ejecute el proyecto jar:java -jar 项目名
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
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
Ejecutar
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)
Debido a que es una interfaz de línea de comando, nuestra interfaz es la consola SpringBoot
Ctrl + C para salir, volver
Pero el problema es que cuando cerramos, SpringBoot se cierra,
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
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.sh
para otorgar permisos ejecutables
Ejecutar script de shell./startup.sh
Ejecutar en segundo plano, la información de la consola se colocará en nohup.out
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