Artikel daripada siri tentang mencipta projek Java (pautan ke bahan lain ada di penghujung). Matlamatnya adalah untuk menganalisis teknologi utama, hasilnya menulis bot telegram. Salam sejahtera, pembaca budiman. Seperti yang diterangkan di bahagian sebelumnya , kami akan pergi mengikut rancangan. Kami telah pun mencipta projek dan sudah tiba masanya untuk mengisinya dengan kod. Kini semua isu akan ditambah sebagai komitmen berasingan. Saya akan menerangkan semua yang perlu di sini. Jika saya terlepas sesuatu atau tidak menerangkannya dengan cukup jelas, tanya dalam ulasan, saya akan cuba menjawab.
Kami menulis JRTB-0M
Dalam tugasan ini kita perlu menambah rangka kerja SpringBoot kosong untuk kerja masa hadapan. Kami akan melakukan ini dengan cara yang sama seperti yang kami lakukan dalam artikel tentang SpringBoot + Flyway . Muat turun projek , buka dalam IDEA dan buat cawangan baharu yang dipanggil JRTB-0 . Saya menerangkan cara melakukan ini melalui idea di sini . Ini akan memudahkan kami menjejaki kerja pada masa hadapan. Adakah anda sudah tahu bahawa tiada lagi cawangan induk ? Kini ia dipanggil neutral - utama . Jadi kita biasakan diri. Walaupun, sejujurnya, kami sentiasa boleh menamakannya semula kepada tuan. Kami pergi ke Spring Initializr dan mencipta rangka kerja SpringBoot untuk bot kami. Pada masa ini, versi termuda pecut but yang ditawarkan ialah 2.3.7, mari kita ambil. Saya akan menerangkan tetapan berikut secara berasingan:- Projek: Projek Maven - kami telah membincangkan Maven di sini dan di sini . Oleh itu, saya juga akan menerangkan hanya perkara yang tidak saya dedahkan dalam artikel sebelumnya. Sekiranya terdapat "bintik-bintik putih", sudah tentu)
- Bahasa: Java - semuanya jelas di sini. Jika ada keinginan, kita boleh menulis semula perkara ini dalam Kotlin. Saya baru sahaja membeli sendiri buku Kotlin in Action, kita akan belajar Kotlin bersama-sama))
- Spring Boot: 2.3.7 - kami mengambil versi terkecil yang ditawarkan untuk menghapuskan sebarang masalah. Ini sudah menjadi versi but sepenuhnya moden.
- Kumpulan: com.github.javarushcommunity - di sini kami memilih domain tempat kumpulan repositori kami dihoskan.
- Artifak: javarush-telegrambot - penerangan maksimum projek.
- Nama: Javarush TelegramBot - kami akan menulisnya sepenuhnya di sini.
- Penerangan: Bot Telegram untuk Javarush dari komuniti ke komuniti - di sini ialah penerangan yang lebih terperinci tentang projek itu.
- Nama pakej: com.github.javarushcommunity.jrtb - di sini anda sudah boleh menggunakan singkatan untuk nama projek. Sekarang projek akan bermula dengan pakej ini. Mengapa begitu ramai? Supaya apabila kita menambah projek lain pada classpath, mereka akan berada dalam pakej yang berbeza. Masing-masing dengan cara tersendiri. Ini penting untuk mengekalkan prinsip OOP.
- Pembungkusan: Jar adalah standard kami)
- Java: 11 - kami akan selangkah ke hadapan. Saya tidak fikir saya akan menggunakan inovasi selepas Java kelapan, tetapi biarlah. Dia tidak meminta makanan)... keputusan ini akan memberi kita telur Paskah kecil pada masa hadapan)
Menyediakan proses CI
Kami pergi ke permintaan tarik yang dibuat: di bawah kami melihat bahawa kami tidak mempunyai Integrasi Berterusan yang dikonfigurasikan (selepas ini - CI). Nah, ia tidak dikonfigurasikan, jadi apa? Mengapa kita memerlukan CI sama sekali? Apa itu CI? Ini adalah lebih kurang senarai soalan yang patut membimbangkan kita pada masa ini. Secara amnya, CI ialah proses berterusan untuk menggabungkan kod ke dalam pangkalan kod biasa dan menjalankan binaan projek sebelum itu. Binaan yang dipanggil (daripada binaan Inggeris). Setiap kali kami membina projek, kami memastikan projek itu telah disusun, semua ujiannya telah lulus dengan jayanya, ditambah selepas membina projek, anda boleh menambah autotest daripada penguji kepada CI yang dijalankan pada binaan khusus ini. Dengan cara ini, kami menjadi lebih yakin bahawa perubahan baharu berfungsi seperti yang kami jangkakan dan tidak memecahkan fungsi sebelumnya. CI juga bagus kerana ia bermula secara automatik selepas mengemas kini pangkalan kod. Iaitu, kami menolak perubahan kami ke dalam cawangan dan proses bermula - pemasangan, ujian, autoujian dan langkah lain. Jika mana-mana langkah ini gagal, binaan dianggap rosak dan tidak boleh digabungkan ke dalam cawangan utama. Inilah yang akan kami lakukan sekarang: kami akan menambah Tindakan GitHub, yang akan menjalankan kod kami selepas menolak. Tindakan GitHub sangat sesuai dengan Aliran GitHub kami, jadi kami akan menggunakannya untuk mengautomasikan kerja kami. Alat ini sangat berkuasa dan besar, tetapi buat masa ini kami hanya akan menggunakannya untuk menjalankan binaan dan menyemak sama ada ia dipasang mengikut keperluan. Untuk mendayakannya, cari butang Tindakan pada halaman repositori dan ikutinya: Cari aliran kerja Integrasi Berterusan yang kami perlukan: Klik Sediakan aliran kerja ini. Seterusnya, kami ditawarkan untuk menggunakan templat mereka: kami bersetuju sepenuhnya, mari kita jelaskan semuanya sedikit:# 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
Ini menunjukkan bahawa Tindakan GitHub dipanggil dalam dua kes:
- Apabila tolakan dibuat ke cawangan utama.
- Apabila permintaan tarik dibuat di cawangan utama.
GO TO FULL VERSION