Một bài viết trong loạt bài viết về cách tạo một dự án Java (có liên kết đến các tài liệu khác ở cuối). Mục tiêu của nó là phân tích các công nghệ chủ chốt, kết quả là viết một bot điện tín. Xin chào các độc giả thân mến. Như đã mô tả ở phần trước , chúng ta sẽ đi theo đúng kế hoạch. Chúng ta đã tạo một dự án và đã đến lúc điền mã vào dự án đó. Bây giờ tất cả các vấn đề sẽ được thêm vào dưới dạng các cam kết riêng biệt. Tôi sẽ mô tả mọi thứ cần thiết ở đây. Nếu tôi bỏ sót điều gì đó hoặc không mô tả đủ rõ ràng, hãy hỏi trong phần bình luận, tôi sẽ cố gắng trả lời.
Chúng tôi viết JRTB-0M
Trong nhiệm vụ này, chúng ta cần thêm một khung SpringBoot trống cho công việc sau này. Chúng ta sẽ thực hiện việc này giống như cách chúng ta đã làm trong bài viết về SpringBoot + Flyway . Tải xuống dự án , mở nó trong IDEA và tạo một nhánh mới có tên JRTB-0 . Tôi đã mô tả cách thực hiện điều này thông qua một ý tưởng ở đây . Điều này sẽ giúp chúng ta dễ dàng theo dõi công việc sau này hơn. Bạn có biết rằng không còn nhánh chính nữa không? Bây giờ nó được gọi là trung lập - main . Vì vậy, chúng tôi đã quen với nó. Mặc dù thành thật mà nói, chúng ta luôn có thể đổi tên nó thành master. Chúng tôi truy cập Spring Khởi tạo và tạo khung SpringBoot cho bot của mình. Hiện tại, phiên bản boot sprint trẻ nhất được cung cấp là 2.3.7, hãy sử dụng nó. Tôi sẽ mô tả riêng các cài đặt sau:- Dự án: Dự án Maven - chúng tôi đã thảo luận về Maven tại đây và tại đây . Vì vậy, tôi sẽ chỉ mô tả thêm những gì tôi chưa tiết lộ trong các bài viết trước. Tất nhiên là nếu có những “đốm trắng” như vậy)
- Ngôn ngữ: Java - mọi thứ đều rõ ràng ở đây. Nếu muốn, chúng ta có thể viết lại vấn đề này trong Kotlin. Tôi vừa mua cho mình một cuốn sách Kotlin in Action, chúng ta sẽ cùng nhau học Kotlin))
- Spring Boot: 2.3.7 - chúng tôi sử dụng phiên bản nhỏ nhất được cung cấp để loại bỏ mọi sự cố. Đây đã là một phiên bản khởi động hoàn toàn hiện đại.
- Nhóm: com.github.javarushcommunity - ở đây chúng tôi chọn miền mà nhóm kho lưu trữ của chúng tôi được lưu trữ.
- Hiện vật: javarush-telegrambot - mô tả tối đa về dự án.
- Tên: Javarush TelegramBot - chúng tôi sẽ viết đầy đủ tại đây.
- Mô tả: Telegram bot cho Javarush từ cộng đồng này sang cộng đồng khác - đây là mô tả chi tiết hơn về dự án.
- Tên gói: com.github.javarushcommunity.jrtb - ở đây bạn đã có thể sử dụng tên viết tắt cho tên dự án. Bây giờ dự án sẽ bắt đầu với gói này. Tại sao nhiều như vậy? Vì vậy, khi chúng tôi thêm các dự án khác vào đường dẫn lớp, chúng sẽ ở trong các gói khác nhau. Mỗi người theo cách riêng của họ. Điều này rất quan trọng để duy trì các nguyên tắc OOP.
- Bao bì: Jar là tiêu chuẩn của chúng tôi)
- Java: 11 - chúng tôi sẽ đi trước một bước. Tôi không nghĩ rằng mình sẽ sử dụng những đổi mới sau Java thứ tám, nhưng hãy để nó như vậy. Anh ấy không đòi ăn)... quyết định này sẽ mang lại cho chúng ta một quả trứng Phục sinh nhỏ trong tương lai)
Thiết lập quy trình CI
Chúng tôi đi đến yêu cầu kéo đã tạo: bên dưới, chúng tôi thấy rằng chúng tôi chưa được định cấu hình Tích hợp liên tục (sau đây gọi là - CI). Chà, nó chưa được cấu hình, vậy thì sao? Tại sao chúng ta lại cần CI? CI rốt cuộc là gì? Đây gần như là danh sách các câu hỏi mà chúng tôi quan tâm vào lúc này. Nói chung, CI là một quá trình liên tục hợp nhất mã vào một cơ sở mã chung và chạy bản dựng dự án trước đó. Cái gọi là build (từ tiếng Anh build). Mỗi khi chúng tôi xây dựng một dự án, chúng tôi đảm bảo rằng dự án đã được biên dịch, tất cả các thử nghiệm của nó đã vượt qua thành công, ngoài ra, sau khi xây dựng dự án, bạn có thể thêm các thử nghiệm tự động từ người thử nghiệm vào CI chạy trên bản dựng cụ thể này. Bằng cách này, chúng tôi trở nên tự tin hơn rằng những thay đổi mới hoạt động như chúng tôi mong đợi và không phá vỡ chức năng trước đó. CI cũng tốt vì nó tự động khởi động sau khi cập nhật cơ sở mã. Nghĩa là, chúng tôi đã đẩy các thay đổi của mình vào nhánh và quá trình bắt đầu - lắp ráp, kiểm tra, tự động kiểm tra và các bước khác. Nếu bất kỳ bước nào trong số này không thành công, bản dựng được coi là bị hỏng và không thể hợp nhất vào nhánh chính. Đây chính xác là những gì chúng ta sẽ làm bây giờ: chúng ta sẽ thêm các Tác vụ GitHub, tác vụ này sẽ chạy mã của chúng ta sau khi đẩy. GitHub Actions hoàn toàn phù hợp với GitHub Flow của chúng tôi, vì vậy chúng tôi sẽ sử dụng nó để tự động hóa công việc của mình. Công cụ này rất mạnh và lớn, nhưng hiện tại chúng tôi sẽ chỉ sử dụng nó để chạy bản dựng và kiểm tra xem nó đã được lắp ráp khi cần hay chưa. Để kích hoạt nó, hãy tìm nút Hành động trên trang kho lưu trữ và làm theo nó: Tìm quy trình Tích hợp liên tục mà chúng tôi cần: Nhấp vào Thiết lập quy trình công việc này. Tiếp theo, chúng tôi được đề nghị sử dụng mẫu của họ: chúng tôi hoàn toàn đồng ý, hãy làm rõ mọi thứ một chút:# 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
Điều này chỉ ra rằng GitHub Action được gọi trong hai trường hợp:
- Khi một cú đẩy được thực hiện đến nhánh chính.
- Khi một yêu cầu kéo được tạo trong nhánh chính.
GO TO FULL VERSION