Java 프로젝트 생성에 관한 시리즈 기사입니다(다른 자료에 대한 링크는 끝에 있습니다). 그 목표는 핵심 기술을 분석하는 것이고, 그 결과는 텔레그램 봇을 작성하는 것입니다. 안녕하세요, 독자 여러분. 이전 부분 에서 설명한 대로 계획대로 진행하겠습니다. 우리는 이미 프로젝트를 만들었고 이제 코드로 채울 차례입니다. 이제 모든 이슈가 별도의 커밋으로 추가됩니다. 여기서 필요한 모든 것을 설명하겠습니다. 제가 놓친 부분이나 명확하게 설명하지 못한 부분이 있으면 댓글로 질문해 주시면 답변해 드리겠습니다.
JRTB-0M을 쓴다
이 작업에서는 향후 작업을 위해 빈 SpringBoot 프레임워크를 추가해야 합니다. SpringBoot + Flyway에 대한 기사 에서 했던 것과 같은 방식으로 이 작업을 수행할 것입니다 . 프로젝트를 다운로드하고 IDEA에서 열고 JRTB-0 이라는 새 분기를 만듭니다 . 여기 아이디어를 통해 이를 수행하는 방법을 설명했습니다 . 이렇게 하면 향후 작업을 더 쉽게 추적할 수 있습니다. 더 이상 마스터 브랜치 가 없다는 것을 이미 알고 계셨나요 ? 이제는 neutral- main 이라고 합니다 . 그래서 우리는 그것에 익숙해집니다. 하지만 솔직히 말해서 언제든지 이름을 다시 master로 바꿀 수 있습니다. Spring Initializr 로 이동하여 봇을 위한 SpringBoot 프레임워크를 생성합니다. 현재 제공되는 부트 스프린트의 최신 버전은 2.3.7입니다. 다음 설정에 대해 별도로 설명하겠습니다.- 프로젝트: Maven 프로젝트 - 우리는 이미 여기 와 여기에서 Maven에 대해 논의했습니다 . 따라서 이전 기사에서 공개하지 않은 내용에 대해서만 추가로 설명하겠습니다. 물론 그러한 "흰 반점"이 있는 경우)
- 언어: Java - 여기에서는 모든 것이 명확합니다. 원하는 경우 이 문제를 Kotlin으로 다시 작성할 수 있습니다. 방금 Kotlin in Action 책을 구입했습니다. 우리는 함께 Kotlin을 배울 것입니다))
- Spring Boot: 2.3.7 - 문제를 제거하기 위해 제공되는 가장 작은 버전을 사용합니다. 이것은 이미 완전히 최신 버전의 부팅입니다.
- 그룹: com.github.javarushcommunity - 여기서는 저장소 그룹이 호스팅되는 도메인을 선택합니다.
- 아티팩트: javarush-telegrambot - 프로젝트에 대한 최대 설명입니다.
- 이름: Javarush TelegramBot - 여기에 전체 내용을 작성하겠습니다.
- 설명: 커뮤니티에서 커뮤니티로의 Javarush용 텔레그램 봇 - 프로젝트에 대한 자세한 설명은 다음과 같습니다.
- 패키지 이름: com.github.javarushcommunity.jrtb - 여기에서는 이미 프로젝트 이름의 약어를 사용할 수 있습니다. 이제 프로젝트는 이 패키지로 시작됩니다. 왜 그렇게 많은가요? 따라서 클래스 경로에 다른 프로젝트를 추가하면 해당 프로젝트는 다른 패키지에 있게 됩니다. 각각 고유한 방식으로. 이는 OOP 원칙을 유지하는 데 중요합니다.
- 포장: Jar 가 표준임)
- Java: 11 - 우리는 한 발 앞서 나갈 것입니다. 여덟 번째 Java 이후에는 혁신을 사용하지 않을 것이라고 생각하지만 그대로 두십시오. 그는 음식을 요구하지 않습니다.... 이 결정은 미래에 우리에게 작은 부활절 달걀을 줄 것입니다)
CI 프로세스 설정
생성된 끌어오기 요청으로 이동합니다. 아래에서는 지속적인 통합 (이하 CI) 이 구성되어 있지 않음을 알 수 있습니다 . 음, 구성되지 않았습니다. 그래서 어쩌죠? CI가 왜 필요한가요? CI란 도대체 무엇일까? 이것은 현재 우리가 관심을 가져야 할 질문 목록입니다. 일반적으로 CI는 코드를 공통 코드 베이스로 병합하고 그 전에 프로젝트 빌드를 실행하는 지속적인 프로세스입니다. 소위 빌드(영어 빌드에서 유래). 프로젝트를 빌드할 때마다 프로젝트가 컴파일되었는지, 모든 테스트가 성공적으로 통과했는지 확인하고, 프로젝트를 빌드한 후 이 특정 빌드에서 실행되는 CI에 테스터의 자동 테스트를 추가할 수 있습니다. 이러한 방식으로 우리는 새로운 변경 사항이 예상대로 작동하고 이전 기능을 손상시키지 않는다는 확신을 갖게 되었습니다. CI도 코드베이스 업데이트 후 자동으로 시작되기 때문에 좋습니다. 즉, 변경 사항을 브랜치에 적용하고 어셈블리, 테스트, 자동 테스트 및 기타 단계 등의 프로세스가 시작되었습니다. 이러한 단계 중 하나라도 실패하면 빌드가 손상된 것으로 간주되어 기본 분기에 병합될 수 없습니다. 이것이 바로 지금 우리가 할 일입니다. 푸시 후에 코드를 실행할 GitHub Actions를 추가하겠습니다. GitHub Actions는 GitHub Flow에 완벽하게 들어맞으므로 이를 사용하여 작업을 자동화할 것입니다. 이 도구는 매우 강력하고 크지만 지금은 빌드를 실행하고 필요에 따라 어셈블되었는지 확인하는 데만 사용하겠습니다. 이를 활성화하려면 저장소 페이지에서 작업 버튼을 찾아 따르십시오. 필요한 지속적인 통합 워크플로우를 찾으십시오. 이 워크플로우 설정을 클릭하십시오. 다음으로 해당 템플릿을 사용하라는 제안을 받았습니다. 우리는 완전히 동의합니다. 모든 것을 조금 명확히 하겠습니다.# 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
이는 GitHub Action이 두 가지 경우에 호출됨을 나타냅니다.
- 메인 브랜치에 푸시가 이루어질 때.
- 풀 리퀘스트가 메인 브랜치에 생성될 때.
GO TO FULL VERSION