Un artículo de una serie sobre la creación de un proyecto Java (los enlaces a otros materiales se encuentran al final). Su objetivo es analizar tecnologías clave y el resultado es escribir un bot de Telegram. Saludos, queridos lectores. Como se describió en la parte anterior , iremos según lo planeado. Ya hemos creado un proyecto y es hora de llenarlo de código. Ahora todos los problemas se agregarán como confirmaciones separadas. Describiré todo lo que sea necesario aquí. Si me olvido de algo o no lo describo con suficiente claridad, pregunta en los comentarios, intentaré responderte.
Escribimos JRTB-0M
En esta tarea necesitamos agregar un marco SpringBoot vacío para trabajos futuros. Haremos esto de la misma manera que lo hicimos en el artículo sobre SpringBoot + Flyway . Descargue el proyecto , ábralo en IDEA y cree una nueva rama llamada JRTB-0 . Describí cómo hacer esto a través de una idea aquí . Esto nos facilitará el seguimiento del trabajo en el futuro. ¿Sabías ya que ya no existe una sucursal master ? Ahora se llama neutralmente principal . Entonces nos acostumbramos. Aunque, para ser sinceros, siempre podremos cambiarle el nombre de nuevo a master. Vamos a Spring Initializr y creamos un framework SpringBoot para nuestro bot. Por el momento, la versión más joven de Boot Sprint que se ofrece es la 2.3.7, vamos a tomarla. Describiré las siguientes configuraciones por separado:- Proyecto: Proyecto Maven : ya hemos hablado de Maven aquí y aquí . Por lo tanto, describiré adicionalmente solo lo que no revelé en artículos anteriores. Si existen tales “puntos blancos”, por supuesto)
- Idioma: Java : aquí todo está claro. Si lo deseamos, podemos reescribir este asunto en Kotlin. Acabo de comprarme un libro Kotlin en acción, aprenderemos Kotlin juntos))
- Spring Boot: 2.3.7 : tomamos la versión más pequeña ofrecida para eliminar cualquier problema. Esta ya es una versión completamente moderna del maletero.
- Grupo: com.github.javarushcommunity : aquí seleccionamos el dominio en el que está alojado nuestro grupo de repositorios.
- Artefacto: javarush-telegrambot : descripción máxima del proyecto.
- Nombre: Javarush TelegramBot : lo escribiremos completo aquí.
- Descripción: Bot de Telegram para Javarush de comunidad en comunidad : aquí hay una descripción más detallada del proyecto.
- Nombre del paquete: com.github.javarushcommunity.jrtb : aquí ya puede utilizar una abreviatura para el nombre del proyecto. Ahora el proyecto comenzará con este paquete. ¿Porqué tantos? De modo que cuando agreguemos otros proyectos al classpath, estarán en paquetes diferentes. Cada uno a su manera. Esto es importante para mantener los principios de programación orientada a objetos.
- Embalaje: El tarro es nuestro estándar)
- Java: 11 : estaremos un paso por delante. No creo que utilice innovaciones después del octavo Java, pero déjalo así. No pide comida)... esta decisión nos dará un pequeño huevo de Pascua en el futuro)
Configurar el proceso de CI
Nos dirigimos al pull request creado: abajo vemos que no tenemos configurada la Integración Continua (en adelante - CI). Bueno, no está configurado, ¿y qué? ¿Por qué necesitamos CI? ¿Qué es CI de todos modos? Esta es aproximadamente la lista de preguntas que deberían preocuparnos en este momento. En general, la CI es un proceso continuo de fusionar código en una base de código común y ejecutar una compilación del proyecto antes de eso. La llamada construcción (del inglés build). Cada vez que construimos un proyecto, nos aseguramos de que el proyecto haya sido compilado, que todas sus pruebas hayan pasado exitosamente y, además, después de compilar el proyecto, puede agregar pruebas automáticas de los evaluadores al CI que se ejecutan en esta compilación específica. De esta manera, tenemos más confianza en que los nuevos cambios funcionan como esperamos y no interrumpen la funcionalidad anterior. CI también es bueno porque se inicia automáticamente después de actualizar el código base. Es decir, introdujimos nuestros cambios en la rama y comenzó el proceso: ensamblaje, pruebas, pruebas automáticas y otros pasos. Si alguno de estos pasos falla, la compilación se considera rota y no se puede fusionar con la rama principal. Esto es exactamente lo que haremos ahora: agregaremos GitHub Actions, que ejecutarán nuestro código después del envío. GitHub Actions encaja perfectamente en nuestro GitHub Flow, por lo que lo usaremos para automatizar nuestro trabajo. Esta herramienta es muy poderosa y grande, pero por ahora solo la usaremos para ejecutar la compilación y verificar que esté ensamblada según sea necesario. Para habilitarlo, busque el botón Acciones en la página del repositorio y sígalo: Busque el flujo de trabajo de integración continua que necesitamos: haga clic en Configurar este flujo de trabajo. A continuación, nos ofrecen utilizar su plantilla: estamos completamente de acuerdo, aclaremos todo un poco:# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
run: mvn -B package --file pom.xml
Esto indica que se llama a GitHub Action en dos casos:
- Cuando se realiza un empujón a la rama principal.
- Cuando se crea una solicitud de extracción en la rama principal.
GO TO FULL VERSION