ชวา 17
กรอบสปริง 6
สปริงบูท 3
การกำหนดเส้นทางแบบไดนามิก
การจับคู่เส้นทางที่สร้างไว้ใน Spring Handler Mapping
การจับคู่เส้นทางในคำขอ HTTP (เส้นทาง, วิธีการ, ส่วนหัว, โฮสต์, ฯลฯ...)
ตัวกรองที่กำหนดขอบเขตเป็นเส้นทางที่ตรงกัน
ตัวกรองสามารถแก้ไขคำขอ HTTP ดาวน์สตรีมและการตอบสนอง HTTP (เพิ่ม/ลบส่วนหัว, เพิ่ม/ลบพารามิเตอร์, เขียนเส้นทางใหม่, ตั้งค่าเส้นทาง, Hystrix ฯลฯ...)
ขับเคลื่อน API หรือการกำหนดค่า
รองรับ Spring Cloud DiscoveryClient
สำหรับการกำหนดค่าเส้นทาง
คำสั่งที่ไม่ได้รับการแก้ไขใน <stdin> - รวม::https:///raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/docs/modules/ROOT/partials/building.adoc[]
Spring Cloud เปิดตัวภายใต้สิทธิ์การใช้งาน Apache 2.0 ที่ไม่จำกัด และปฏิบัติตามกระบวนการพัฒนา Github ที่เป็นมาตรฐานมาก โดยใช้ตัวติดตาม Github สำหรับปัญหาและรวมคำขอดึงเข้าในหลัก หากคุณต้องการสนับสนุนแม้กระทั่งเรื่องเล็กๆ น้อยๆ โปรดอย่าลังเล แต่ปฏิบัติตามหลักเกณฑ์ด้านล่าง
ก่อนที่เรายอมรับแพตช์หรือคำขอดึงข้อมูลที่ไม่ไม่สำคัญ เราจำเป็นต้องให้คุณลงนามในข้อตกลงสิทธิ์การใช้งานผู้ร่วมให้ข้อมูล การลงนามในข้อตกลงของผู้ร่วมให้ข้อมูลไม่ได้ให้สิทธิ์แก่ใครก็ตามในการยืนยันสิทธิ์ในพื้นที่เก็บข้อมูลหลัก แต่หมายความว่าเราสามารถยอมรับการมีส่วนร่วมของคุณได้ และคุณจะได้รับเครดิตผู้เขียนหากเรายอมรับ ผู้มีส่วนร่วมที่ใช้งานอยู่อาจถูกขอให้เข้าร่วมทีมหลัก และกำหนดให้สามารถรวมคำขอดึงข้อมูลได้
โครงการนี้ปฏิบัติตามหลักจรรยาบรรณของผู้ร่วมให้ข้อมูล ในการเข้าร่วม คุณจะต้องรักษารหัสนี้ กรุณารายงานพฤติกรรมที่ไม่สามารถยอมรับได้ที่ [email protected]
สิ่งเหล่านี้ไม่จำเป็นสำหรับการขอดึง แต่ทั้งหมดจะช่วยได้ นอกจากนี้ยังสามารถเพิ่มได้หลังจากคำขอดึงต้นฉบับ แต่ก่อนการรวม
ใช้แบบแผนการจัดรูปแบบโค้ด Spring Framework หากคุณใช้ Eclipse คุณสามารถนำเข้าการตั้งค่าฟอร์แมตเตอร์ได้โดยใช้ไฟล์ eclipse-code-formatter.xml
จากโปรเจ็กต์ Spring Cloud Build หากใช้ IntelliJ คุณสามารถใช้ Eclipse Code Formatter Plugin เพื่ออิมพอร์ตไฟล์เดียวกัน
ตรวจสอบให้แน่ใจว่าไฟล์ .java
ใหม่ทั้งหมดมีความคิดเห็นคลาส Javadoc แบบธรรมดา โดยมีแท็ก @author
อย่างน้อยระบุตัวคุณ และควรมีอย่างน้อยหนึ่งย่อหน้าเกี่ยวกับความหมายของคลาส
เพิ่มความคิดเห็นส่วนหัวใบอนุญาต ASF ให้กับไฟล์ .java
ใหม่ทั้งหมด (คัดลอกจากไฟล์ที่มีอยู่ในโครงการ)
เพิ่มตัวคุณเองเป็น @author
ในไฟล์ .java ที่คุณแก้ไขอย่างมาก (มากกว่าการเปลี่ยนแปลงภายนอก)
เพิ่ม Javadocs บางส่วน และหากคุณเปลี่ยนเนมสเปซ ให้เพิ่มองค์ประกอบเอกสาร XSD บางส่วน
A few unit tests would help a lot as well — someone has to do it.
หากไม่มีใครใช้สาขาของคุณอยู่ โปรดรีบูตมันกับสาขาหลักปัจจุบัน (หรือสาขาเป้าหมายอื่น ๆ ในโปรเจ็กต์หลัก)
When writing a commit message please follow these conventions, if you are fixing an existing issue please add Fixes gh-XXXX
at the end of the commit message (where XXXX is the issue number).
Spring Cloud Build มาพร้อมกับชุดกฎ Checkstyle คุณสามารถค้นหาได้ในโมดูล spring-cloud-build-tools
The most notable files under the module are:
└── src ├── สไตล์การตรวจสอบ │ └── checkstyle-suppressions.xml (3) └── หลัก └──ทรัพยากร ├── checkstyle-header.txt (2) └── checkstyle.xml (1)
กฎ Checkstyle เริ่มต้น
การตั้งค่าส่วนหัวของไฟล์
กฎการปราบปรามเริ่มต้น
กฎ Checkstyle ถูก ปิดใช้งานตามค่าเริ่มต้น หากต้องการเพิ่ม checkstyle ให้กับโปรเจ็กต์ของคุณ เพียงกำหนดคุณสมบัติและปลั๊กอินต่อไปนี้
<คุณสมบัติ> <maven-checkstyle-plugin.failsOnError>จริง</maven-checkstyle-plugin.failsOnError> (1) <maven-checkstyle-plugin.failsOnViolation>จริง </maven-checkstyle-plugin.failsOnViolation> (2) <maven-checkstyle-plugin.includeTestSourceDirectory>จริง </maven-checkstyle-plugin.includeTestSourceDirectory> (3) </คุณสมบัติ> <สร้าง> <ปลั๊กอิน> <ปลั๊กอิน> (4) <groupId>io.spring.javaformat</groupId> <artifactId>spring-javaformat-maven-plugin</artifactId> </ปลั๊กอิน> <ปลั๊กอิน> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </ปลั๊กอิน> </ปลั๊กอิน> <การรายงาน> <ปลั๊กอิน> <ปลั๊กอิน> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </ปลั๊กอิน> </ปลั๊กอิน> </การรายงาน> </build>
ล้มเหลวในการสร้างตามข้อผิดพลาด Checkstyle
ล้มเหลวในการสร้างตามการละเมิด Checkstyle
การวิเคราะห์ Checkstyle รวมถึงแหล่งทดสอบด้วย
เพิ่มปลั๊กอิน Spring Java Format ที่จะฟอร์แมตโค้ดของคุณใหม่เพื่อให้ผ่านกฎการจัดรูปแบบ Checkstyle ส่วนใหญ่
เพิ่มปลั๊กอิน Checkstyle ให้กับขั้นตอนการสร้างและการรายงานของคุณ
หากคุณต้องการระงับกฎบางข้อ (เช่น ความยาวบรรทัดต้องยาวกว่านี้) ก็เพียงพอแล้วสำหรับคุณที่จะกำหนดไฟล์ภายใต้ ${project.root}/src/checkstyle/checkstyle-suppressions.xml
ด้วยการระงับของคุณ ตัวอย่าง:
<?xml เวอร์ชัน = "1.0"?> <!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//การระงับ DTD 1.1//EN" "https://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> <การปราบปราม> <ระงับไฟล์ = ".*ConfigServerApplication.java" ตรวจสอบ = "HideUtilityClassConstructor"/> <suppress files=".*ConfigClientWatch.java" checks="LineLengthCheck"/> </ปราบปราม>
ขอแนะนำให้คัดลอก ${spring-cloud-build.rootFolder}/.editorconfig
และ ${spring-cloud-build.rootFolder}/.springformat
ไปยังโปรเจ็กต์ของคุณ ด้วยวิธีนี้ กฎการจัดรูปแบบเริ่มต้นบางกฎจะถูกนำมาใช้ คุณสามารถทำได้โดยการรันสคริปต์นี้:
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/.editorconfig -o .editorconfig
$ touch .springformat
ในการตั้งค่า Intellij คุณควรนำเข้ารูปแบบการเขียนโค้ด โปรไฟล์การตรวจสอบ และตั้งค่าปลั๊กอิน Checkstyle ไฟล์ต่อไปนี้สามารถพบได้ในโปรเจ็กต์ Spring Cloud Build
└── src ├── สไตล์การตรวจสอบ │──ตรวจสอบสไตล์ suppressions.xml (3) └── หลัก └──ทรัพยากร ├── checkstyle-header.txt (2) ├── checkstyle.xml (1) └── สติปัญญา ├── Intellij_Project_Defaults.xml (4) └── Intellij_Spring_Boot_Java_Conventions.xml (5)
กฎ Checkstyle เริ่มต้น
File header setup
กฎการปราบปรามเริ่มต้น
ค่าเริ่มต้นของโปรเจ็กต์สำหรับ Intellij ที่ใช้กฎ Checkstyle ส่วนใหญ่
แบบแผนสไตล์โปรเจ็กต์สำหรับ Intellij ที่ใช้กฎ Checkstyle ส่วนใหญ่
ไปที่ File
→ Settings
→ Editor
→ Code style
คลิกที่ไอคอนถัดจากส่วน Scheme
คลิกค่า Import Scheme
แล้วเลือกตัวเลือก Intellij IDEA code style XML
อิมพอร์ตไฟล์ spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml
ไปที่ File
→ Settings
→ Editor
→ Inspections
คลิกที่ไอคอนถัดจากส่วน Profile
คลิกที่ Import Profile
และนำเข้าไฟล์ spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml
หากต้องการให้ Intellij ทำงานร่วมกับ Checkstyle คุณต้องติดตั้งปลั๊กอิน Checkstyle
ขอแนะนำให้ติดตั้ง Assertions2Assertj
เพื่อแปลงการยืนยัน JUnit โดยอัตโนมัติ
ไปที่ File
→ Settings
→ Other settings
→ Checkstyle
คลิกที่ไอคอน +
ในส่วน Configuration file
ที่นั่น คุณจะต้องกำหนดว่าควรเลือกกฎสไตล์การตรวจสอบจากที่ใด ในภาพด้านบน เราได้เลือกกฎจากพื้นที่เก็บข้อมูล Spring Cloud Build ที่โคลนไว้ อย่างไรก็ตาม คุณสามารถชี้ไปที่ที่เก็บ GitHub ของ Spring Cloud Build ได้ (เช่นสำหรับ checkstyle.xml
: https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle.xml
) เราจำเป็นต้องจัดเตรียมตัวแปรต่อไปนี้:
checkstyle.header.file
- โปรดชี้ไปที่ไฟล์ Spring Cloud Build's, spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
ใน repo ที่โคลนของคุณหรือผ่านทาง 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
- การระงับเริ่มต้น โปรดชี้ไปที่ไฟล์ spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
ของ Spring Cloud Build ใน repo ที่โคลนของคุณหรือผ่านทาง https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
URL
checkstyle.additional.suppressions.file
- ตัวแปรนี้สอดคล้องกับการระงับในโปรเจ็กต์โลคัลของคุณ เช่นคุณกำลังทำงานกับ spring-cloud-contract
จากนั้นชี้ไปที่โฟลเดอร์ project-root/src/checkstyle/checkstyle-suppressions.xml
ตัวอย่างสำหรับ spring-cloud-contract
จะเป็น: /home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml
สำคัญ | อย่าลืมตั้ง Scan Scope เป็น All sources เนื่องจากเราใช้กฎสไตล์ตรวจสอบสำหรับแหล่งที่มาที่ใช้งานจริงและทดสอบ |
Spring Cloud Build นำ basepom:duplicate-finder-maven-plugin
มาใช้ ซึ่งเปิดใช้งานการแฟล็กคลาสและทรัพยากรที่ซ้ำกันและขัดแย้งกันบนคลาสพาธของ Java
ตัวค้นหาที่ซ้ำกัน ถูกเปิดใช้งานตามค่าเริ่มต้น และจะทำงานในขั้นตอน verify
ของบิลด์ Maven ของคุณ แต่จะมีผลในโปรเจ็กต์ของคุณหากคุณเพิ่ม duplicate-finder-maven-plugin
ลงในส่วน build
ของ pom.xml
ของโปรเจ็กต์
< build >
< plugins >
< plugin >
< groupId >org.basepom.maven</ groupId >
< artifactId >duplicate-finder-maven-plugin</ artifactId >
</ plugin >
</ plugins >
</ build >
สำหรับคุณสมบัติอื่นๆ เราได้ตั้งค่าเริ่มต้นตามที่ระบุไว้ในเอกสารประกอบปลั๊กอิน
คุณสามารถแทนที่ได้อย่างง่ายดาย แต่ตั้งค่าของคุณสมบัติที่เลือกนำหน้าด้วย duplicate-finder-maven-plugin
ตัวอย่างเช่น ตั้งค่า duplicate-finder-maven-plugin.skip
เป็น true
เพื่อข้ามการตรวจสอบรายการซ้ำในบิลด์ของคุณ
หากคุณต้องการเพิ่ม ignoredClassPatterns
หรือ ignoredResourcePatterns
ไปยังการตั้งค่าของคุณ ตรวจสอบให้แน่ใจว่าได้เพิ่มในส่วนการกำหนดค่าปลั๊กอินของโปรเจ็กต์ของคุณ:
< 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 >