Un article d'une série sur la création d'un projet Java (les liens vers d'autres documents se trouvent à la fin). Son objectif est d'analyser les technologies clés, le résultat est d'écrire un robot télégramme. Salutations, chers lecteurs. Comme décrit dans la partie précédente , nous procéderons comme prévu. Nous avons déjà créé un projet et il est temps de le remplir de code. Désormais, tous les problèmes seront ajoutés en tant que commits distincts. Je vais décrire ici tout ce qui est nécessaire. Si quelque chose me manque ou si je ne le décris pas assez clairement, demandez dans les commentaires, j'essaierai de répondre.
Nous écrivons JRTB-0M
Dans cette tâche, nous devons ajouter un framework SpringBoot vide pour les travaux futurs. Nous ferons cela de la même manière que nous l'avons fait dans l'article sur SpringBoot + Flyway . Téléchargez le projet , ouvrez-le dans IDEA et créez une nouvelle branche appelée JRTB-0 . J'ai décrit comment procéder à travers une idée ici . Cela nous permettra de suivre plus facilement les travaux à l’avenir. Saviez-vous déjà qu’il n’existe plus de branche master ? Maintenant, cela s'appelle neutre- main . Alors on s'y habitue. Bien que, pour être honnête, nous puissions toujours le renommer master. Nous allons sur Spring Initializr et créons un framework SpringBoot pour notre bot. Pour le moment, la plus jeune version du boot sprint proposée est la 2.3.7, prenons-la. Je décrirai séparément les paramètres suivants :- Projet : Projet Maven - nous avons déjà discuté de Maven ici et ici . Par conséquent, je décrirai en plus uniquement ce que je n'ai pas divulgué dans les articles précédents. S'il y a de tels "points blancs", bien sûr)
- Langage : Java - tout est clair ici. Si nous le souhaitons, nous pouvons réécrire cette affaire en Kotlin. Je viens de m'acheter un livre Kotlin in Action, nous apprendrons Kotlin ensemble))
- Spring Boot : 2.3.7 - nous prenons la plus petite version proposée pour éliminer tout problème. Il s'agit déjà d'une version complètement moderne de la botte.
- Groupe : com.github.javarushcommunity - nous sélectionnons ici le domaine sur lequel notre groupe de référentiels est hébergé.
- Artefact : javarush-telegrambot - description maximale du projet.
- Nom : Javarush TelegramBot - nous l'écrirons dans son intégralité ici.
- Description : Bot Telegram pour Javarush de communauté en communauté - voici une description plus détaillée du projet.
- Nom du package : com.github.javarushcommunity.jrtb - ici, vous pouvez déjà utiliser une abréviation pour le nom du projet. Le projet va maintenant démarrer avec ce package. Pourquoi tant ? Ainsi, lorsque nous ajouterons d’autres projets au chemin de classe, ils seront dans des packages différents. Chacun à sa manière. Ceci est important pour maintenir les principes de la POO.
- Emballage : Le pot est notre norme)
- Java : 11 - nous aurons une longueur d'avance. Je ne pense pas que j'utiliserai les innovations après le huitième Java, mais qu'il en soit ainsi. Il ne demande pas de nourriture)... cette décision nous donnera un petit œuf de Pâques à l'avenir)
Mise en place du processus CI
Nous allons à la pull request créée : ci-dessous, nous voyons que nous n'avons pas configuré l'intégration continue (ci-après - CI). Eh bien, ce n’est pas configuré, et alors ? Pourquoi avons-nous besoin de CI ? Au fait, qu’est-ce que le CI ? C'est à peu près la liste des questions qui devraient nous préoccuper en ce moment. En général, CI est un processus continu de fusion de code dans une base de code commune et d'exécution d'une version du projet avant cela. Ce qu'on appelle build (de l'anglais build). Chaque fois que nous construisons un projet, nous nous assurons que le projet a été compilé, que tous ses tests ont réussi, et après la construction du projet, vous pouvez ajouter des autotests des testeurs à CI qui sont exécutés sur cette version spécifique. De cette façon, nous sommes plus sûrs que les nouvelles modifications fonctionnent comme prévu et n’interrompent pas les fonctionnalités précédentes. CI est également bon car il démarre automatiquement après la mise à jour de la base de code. Autrement dit, nous avons poussé nos modifications dans la branche et le processus a commencé - assemblage, tests, autotests et autres étapes. Si l’une de ces étapes échoue, la build est considérée comme interrompue et ne peut pas être fusionnée dans la branche principale. C'est exactement ce que nous allons faire maintenant : nous ajouterons des actions GitHub, qui exécuteront notre code après le push. GitHub Actions s'intègre parfaitement dans notre GitHub Flow, nous allons donc l'utiliser pour automatiser notre travail. Cet outil est très puissant et volumineux, mais pour l'instant nous l'utiliserons uniquement pour exécuter le build et vérifier qu'il est assemblé selon les besoins. Pour l'activer, recherchez le bouton Actions sur la page du référentiel et suivez-le : Recherchez le workflow d'intégration continue dont nous avons besoin : cliquez sur Configurer ce workflow. Ensuite, on nous propose d'utiliser leur modèle : nous sommes tout à fait d'accord, clarifions juste un peu tout :# 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
Cela indique que GitHub Action est appelée dans deux cas :
- Lorsqu'une poussée est effectuée vers la branche principale.
- Lorsqu'une pull request est créée dans la branche principale.
GO TO FULL VERSION