Um artigo de uma série sobre a criação de um projeto Java (links para outros materiais estão no final). Seu objetivo é analisar tecnologias-chave, o resultado é escrever um bot de telegrama. Saudações, queridos leitores. Conforme descrito na parte anterior , iremos conforme o planejado. Já criamos um projeto e é hora de preenchê-lo com código. Agora todos os problemas serão adicionados como commits separados. Descreverei tudo o que é necessário aqui. Se eu perder alguma coisa ou não descrever com clareza suficiente, pergunte nos comentários, tentarei responder.
Escrevemos JRTB-0M
Nesta tarefa, precisamos adicionar uma estrutura SpringBoot vazia para trabalhos futuros. Faremos isso da mesma forma que fizemos no artigo sobre SpringBoot + Flyway . Baixe o projeto , abra-o no IDEA e crie um novo branch chamado JRTB-0 . Descrevi como fazer isso através de uma ideia aqui . Isso tornará mais fácil para nós acompanhar o trabalho no futuro. Você já sabia que não existe mais branch master ? Agora é chamado de neutro- principal . Então a gente se acostuma. Embora, para ser honesto, sempre possamos renomeá-lo de volta para master. Vamos ao Spring Initializr e criamos uma estrutura SpringBoot para nosso bot. No momento, a versão mais nova do boot sprint oferecida é a 2.3.7, vamos lá. Descreverei as seguintes configurações separadamente:- Projeto: Projeto Maven - já discutimos o Maven aqui e aqui . Portanto, descreverei adicionalmente apenas o que não revelei em artigos anteriores. Se houver tais “manchas brancas”, é claro)
- Linguagem: Java - tudo está claro aqui. Se desejarmos, podemos reescrever este assunto em Kotlin. Acabei de comprar um livro Kotlin em ação, aprenderemos Kotlin juntos))
- Spring Boot: 2.3.7 - utilizamos a menor versão oferecida para eliminar quaisquer problemas. Esta já é uma versão totalmente moderna da bota.
- Grupo: com.github.javarushcommunity - aqui selecionamos o domínio no qual nosso grupo de repositórios está hospedado.
- Artefato: javarush-telegrambot - descrição máxima do projeto.
- Nome: Javarush TelegramBot - escreveremos na íntegra aqui.
- Descrição: Bot Telegram para Javarush de comunidade em comunidade - aqui está uma descrição mais detalhada do projeto.
- Nome do pacote: com.github.javarushcommunity.jrtb - aqui você já pode usar uma abreviatura para o nome do projeto. Agora o projeto começará com este pacote. Por que tantos? Para que quando adicionarmos outros projetos ao classpath, eles estarão em pacotes diferentes. Cada um à sua maneira única. Isso é importante para manter os princípios OOP.
- Embalagem: Jar é nosso padrão)
- Java: 11 - estaremos um passo à frente. Não acho que usarei inovações após o oitavo Java, mas deixe estar. Ele não pede comida)... esta decisão nos dará um pequeno ovo de Páscoa no futuro)
Configurando o processo de CI
Vamos para o pull request criado: abaixo vemos que não temos a Integração Contínua configurada (doravante - CI). Bem, não está configurado, e daí? Por que precisamos de CI? Afinal, o que é CI? Esta é aproximadamente a lista de questões que devem nos preocupar neste momento. Em geral, CI é um processo contínuo de fusão de código em uma base de código comum e execução de uma construção do projeto antes disso. O chamado build (do inglês build). Cada vez que construímos um projeto, garantimos que o projeto foi compilado, todos os seus testes foram aprovados com êxito e, após a construção do projeto, você pode adicionar autotestes de testadores ao CI que são executados nesta compilação específica. Dessa forma, ficamos mais confiantes de que as novas mudanças funcionarão conforme esperamos e não quebrarão a funcionalidade anterior. CI também é bom porque inicia automaticamente após atualizar a base de código. Ou seja, empurramos nossas alterações para a filial e o processo começou – montagem, testes, autotestes e outras etapas. Se alguma dessas etapas falhar, a compilação será considerada quebrada e não poderá ser mesclada na ramificação principal. É exatamente isso que faremos agora: adicionaremos GitHub Actions, que executará nosso código após o push. GitHub Actions se encaixa perfeitamente em nosso GitHub Flow, então vamos usá-lo para automatizar nosso trabalho. Esta ferramenta é muito poderosa e grande, mas por enquanto só a usaremos para executar a compilação e verificar se ela está montada conforme necessário. Para habilitá-lo, encontre o botão Ações na página do repositório e siga-o: Encontre o fluxo de trabalho de Integração Contínua que precisamos: Clique em Configurar este fluxo de trabalho. A seguir, nos é oferecido o uso do template deles: concordamos plenamente, vamos apenas esclarecer tudo um pouco:# 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
Isso indica que GitHub Action é chamado em dois casos:
- Quando um push é feito no branch principal.
- Quando uma solicitação pull é criada na ramificação principal.
GO TO FULL VERSION