Jawa 17
Kerangka Musim Semi 6
Sepatu Musim Semi 3
Perutean dinamis
Pencocokan rute dibangun ke dalam Spring Handler Mapping
Pencocokan rute pada Permintaan HTTP (Jalur, Metode, Header, Host, dll…)
Filter dicakup ke Rute Pencocokan
Filter dapat mengubah Permintaan HTTP hilir dan Respons HTTP (Tambah/Hapus Header, Tambah/Hapus Parameter, Penulisan Ulang Jalur, Setel Jalur, Hystrix, dll…)
Didorong oleh API atau konfigurasi
Mendukung Spring Cloud DiscoveryClient
untuk mengonfigurasi Rute
Perintah yang belum terselesaikan di <stdin> - termasuk::https:///raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/docs/modules/ROOT/partials/building.adoc[]
Spring Cloud dirilis di bawah lisensi Apache 2.0 yang tidak membatasi, dan mengikuti proses pengembangan Github yang sangat standar, menggunakan pelacak Github untuk masalah dan menggabungkan permintaan tarik ke utama. Jika Anda ingin berkontribusi meski hanya hal sepele, jangan ragu, ikuti panduan di bawah ini.
Sebelum kami menerima patch atau permintaan penarikan yang tidak sepele, kami memerlukan Anda untuk menandatangani Perjanjian Lisensi Kontributor. Menandatangani perjanjian kontributor tidak memberikan siapa pun hak komit atas repositori utama, namun itu berarti kami dapat menerima kontribusi Anda, dan Anda akan mendapatkan kredit penulis jika kami menerimanya. Kontributor aktif mungkin diminta untuk bergabung dengan tim inti, dan diberikan kemampuan untuk menggabungkan permintaan penarikan.
Proyek ini mematuhi kode etik Perjanjian Kontributor. Dengan berpartisipasi, Anda diharapkan menjunjung tinggi kode ini. Silakan laporkan perilaku yang tidak dapat diterima ke [email protected].
Tidak ada satupun yang penting untuk pull request, namun semuanya akan membantu. Mereka juga dapat ditambahkan setelah permintaan penarikan asli tetapi sebelum penggabungan.
Gunakan konvensi format kode Spring Framework. Jika Anda menggunakan Eclipse, Anda dapat mengimpor pengaturan formatter menggunakan file eclipse-code-formatter.xml
dari proyek Spring Cloud Build. Jika menggunakan IntelliJ, Anda dapat menggunakan Plugin Eclipse Code Formatter untuk mengimpor file yang sama.
Pastikan semua file .java
baru memiliki komentar kelas Javadoc sederhana dengan setidaknya tag @author
yang mengidentifikasi Anda, dan sebaiknya setidaknya satu paragraf tentang tujuan kelas tersebut.
Tambahkan komentar header lisensi ASF ke semua file .java
baru (salin dari file yang ada di proyek)
Tambahkan diri Anda sebagai @author
ke file .java yang Anda modifikasi secara substansial (lebih dari sekadar perubahan tampilan).
Tambahkan beberapa Javadocs dan, jika Anda mengubah namespace, beberapa elemen dokumen XSD.
Beberapa pengujian unit juga akan sangat membantu — seseorang harus melakukannya.
Jika tidak ada orang lain yang menggunakan cabang Anda, silakan lakukan rebase terhadap cabang utama saat ini (atau cabang target lain di proyek utama).
Saat menulis pesan komit, harap ikuti konvensi ini, jika Anda memperbaiki masalah yang ada, harap tambahkan Fixes gh-XXXX
di akhir pesan komit (di mana XXXX adalah nomor masalahnya).
Spring Cloud Build hadir dengan serangkaian aturan checkstyle. Anda dapat menemukannya di modul spring-cloud-build-tools
. File yang paling menonjol di bawah modul ini adalah:
└── src ├── gaya cek │ └── checkstyle-suppressions.xml (3) └── utama └── sumber daya ├── checkstyle-header.txt (2) └── checkstyle.xml (1)
Aturan Gaya Periksa Default
Pengaturan tajuk file
Aturan penindasan default
Aturan checkstyle dinonaktifkan secara default . Untuk menambahkan checkstyle ke proyek Anda cukup tentukan properti dan plugin berikut.
<properti> <maven-checkstyle-plugin.failsOnError>benar</maven-checkstyle-plugin.failsOnError> (1) <maven-checkstyle-plugin.failsOnViolation>benar </maven-checkstyle-plugin.failsOnViolation> (2) <maven-checkstyle-plugin.includeTestSourceDirectory>benar </maven-checkstyle-plugin.includeTestSourceDirectory> (3) </properti> <membangun> <plugin> <plugin> (4) <groupId>io.spring.javaformat</groupId> <artifactId>spring-javaformat-maven-plugin</artifactId> </plugin> <plugin> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> </plugin> <pelaporan> <plugin> <plugin> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> </plugin> </pelaporan> </membangun>
Gagal membangun kesalahan Checkstyle
Gagal membangun pelanggaran Checkstyle
Analisis Checkstyle juga sumber pengujian
Tambahkan plugin Spring Java Format yang akan memformat ulang kode Anda agar dapat melewati sebagian besar aturan pemformatan Checkstyle
Tambahkan plugin checkstyle ke fase pembuatan dan pelaporan Anda
Jika Anda perlu menyembunyikan beberapa aturan (misalnya panjang garis harus lebih panjang), maka cukup bagi Anda untuk mendefinisikan file di bawah ${project.root}/src/checkstyle/checkstyle-suppressions.xml
dengan penekanan Anda. Contoh:
<?xml versi="1.0"?> <!DOCTYPE menekan PUBLIC "-//Perayapan Anak Anjing//Penindasan DTD 1.1//EN" "https://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> <penindasan> <menekan files=".*ConfigServerApplication.java" checks="HideUtilityClassConstructor"/> <menekan files=".*ConfigClientWatch.java" checks="LineLengthCheck"/> </penindasan>
Sebaiknya salin format ${spring-cloud-build.rootFolder}/.editorconfig
dan ${spring-cloud-build.rootFolder}/.springformat
ke proyek Anda. Dengan begitu, beberapa aturan pemformatan default akan diterapkan. Anda dapat melakukannya dengan menjalankan skrip ini:
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/.editorconfig -o .editorconfig
$ touch .springformat
Untuk menyiapkan Intellij, Anda harus mengimpor konvensi pengkodean kami, profil inspeksi, dan menyiapkan plugin checkstyle. File berikut dapat ditemukan di proyek Spring Cloud Build.
└── src ├── gaya cek │ └── checkstyle-suppressions.xml (3) └── utama └── sumber daya ├── checkstyle-header.txt (2) ├── checkstyle.xml (1) └── kecerdasan ├── Intellij_Project_Defaults.xml (4) └── Intellij_Spring_Boot_Java_Conventions.xml (5)
Aturan Gaya Periksa Default
Pengaturan tajuk file
Aturan penindasan default
Default proyek untuk Intellij yang menerapkan sebagian besar aturan Checkstyle
Konvensi gaya proyek untuk Intellij yang menerapkan sebagian besar aturan Checkstyle
Buka File
→ Settings
→ Editor
→ Code style
. Di sana klik ikon di sebelah bagian Scheme
. Di sana, klik pada nilai Import Scheme
dan pilih opsi Intellij IDEA code style XML
. Impor file spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml
.
Buka File
→ Settings
→ Editor
→ Inspections
. Di sana klik ikon di sebelah bagian Profile
. Di sana, klik Import Profile
dan impor file spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml
.
Agar Intellij berfungsi dengan Checkstyle, Anda harus menginstal plugin Checkstyle
. Disarankan juga untuk menginstal Assertions2Assertj
untuk secara otomatis mengonversi pernyataan JUnit
Buka File
→ Settings
→ Other settings
→ Checkstyle
. Di sana klik ikon +
di bagian Configuration file
. Di sana, Anda harus menentukan dari mana aturan checkstyle harus dipilih. Pada gambar di atas, kami telah memilih aturan dari repositori Spring Cloud Build yang dikloning. Namun, Anda dapat menunjuk ke repositori GitHub Spring Cloud Build (misalnya untuk checkstyle.xml
: https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle.xml
). Kita perlu menyediakan variabel berikut:
checkstyle.header.file
- harap arahkan ke file Spring Cloud Build, spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
baik di repo kloning Anda atau melalui https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
URL https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
.
checkstyle.suppressions.file
- penindasan default. Harap arahkan ke file Spring Cloud Build, spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
baik di repo kloning Anda atau melalui https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
URL.
checkstyle.additional.suppressions.file
- variabel ini sesuai dengan penekanan di proyek lokal Anda. Misalnya Anda sedang mengerjakan spring-cloud-contract
. Lalu arahkan ke folder project-root/src/checkstyle/checkstyle-suppressions.xml
. Contoh untuk spring-cloud-contract
adalah: /home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml
.
Penting | Ingatlah untuk mengatur Scan Scope ke All sources karena kami menerapkan aturan gaya periksa untuk sumber produksi dan pengujian. |
Spring Cloud Build menghadirkan basepom:duplicate-finder-maven-plugin
, yang memungkinkan penandaan kelas dan sumber daya duplikat dan konflik di jalur kelas java.
Pencari duplikat diaktifkan secara default dan akan berjalan pada fase verify
build Maven Anda, namun ini hanya akan berlaku di proyek Anda jika Anda menambahkan duplicate-finder-maven-plugin
ke bagian build
pom.xml
proyek.
< build >
< plugins >
< plugin >
< groupId >org.basepom.maven</ groupId >
< artifactId >duplicate-finder-maven-plugin</ artifactId >
</ plugin >
</ plugins >
</ build >
Untuk properti lainnya, kami telah menetapkan default seperti yang tercantum dalam dokumentasi plugin.
Anda dapat dengan mudah menimpanya tetapi menetapkan nilai properti yang dipilih yang diawali dengan duplicate-finder-maven-plugin
. Misalnya, setel duplicate-finder-maven-plugin.skip
ke true
untuk melewati pemeriksaan duplikat di build Anda.
Jika Anda perlu menambahkan ignoredClassPatterns
atau ignoredResourcePatterns
ke pengaturan Anda, pastikan untuk menambahkannya di bagian konfigurasi plugin proyek Anda:
< build >
< plugins >
< plugin >
< groupId >org.basepom.maven</ groupId >
< artifactId >duplicate-finder-maven-plugin</ artifactId >
< configuration >
< ignoredClassPatterns >
< ignoredClassPattern >org.joda.time.base.BaseDateTime</ ignoredClassPattern >
< ignoredClassPattern >.*module-info</ ignoredClassPattern >
</ ignoredClassPatterns >
< ignoredResourcePatterns >
< ignoredResourcePattern >changelog.txt</ ignoredResourcePattern >
</ ignoredResourcePatterns >
</ configuration >
</ plugin >
</ plugins >
</ build >