자바 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를 사용하는 경우 Spring Cloud Build 프로젝트에서 eclipse-code-formatter.xml
파일을 사용하여 포맷터 설정을 가져올 수 있습니다. IntelliJ를 사용하는 경우 Eclipse Code Formatter 플러그인을 사용하여 동일한 파일을 가져올 수 있습니다.
모든 새 .java
파일에 최소한 사용자를 식별하는 @author
태그가 포함된 간단한 Javadoc 클래스 주석이 있는지 확인하고 클래스의 용도에 대한 단락이 있는 것이 좋습니다.
모든 새 .java
파일에 ASF 라이센스 헤더 주석을 추가합니다(프로젝트의 기존 파일에서 복사).
실질적으로 수정하는(외관적인 변경 이상) .java 파일에 자신을 @author
로 추가하세요.
일부 Javadoc을 추가하고 네임스페이스를 변경하는 경우 일부 XSD 문서 요소를 추가합니다.
몇 가지 단위 테스트도 많은 도움이 될 것입니다. 누군가는 그것을 해야 합니다.
다른 사람이 귀하의 브랜치를 사용하지 않는 경우 현재 기본(또는 기본 프로젝트의 다른 대상 브랜치)을 기준으로 리베이스하십시오.
커밋 메시지를 작성할 때 다음 규칙을 따르십시오. 기존 문제를 수정하는 경우 커밋 메시지 끝에 Fixes gh-XXXX
추가하세요(여기서 XXXX는 문제 번호).
Spring Cloud Build에는 일련의 체크스타일 규칙이 함께 제공됩니다. spring-cloud-build-tools
모듈에서 찾을 수 있습니다. 모듈에서 가장 주목할만한 파일은 다음과 같습니다.
└── 소스 ├── 체크스타일 │ └── checkstyle-suppressions.xml (3) └── 메인 └── 자원 ├── checkstyle-header.txt (2) └── checkstyle.xml (1)
기본 체크스타일 규칙
파일 헤더 설정
기본 억제 규칙
체크스타일 규칙은 기본적으로 비활성화 되어 있습니다. 프로젝트에 체크스타일을 추가하려면 다음 속성과 플러그인을 정의하세요.
<속성> <maven-checkstyle-plugin.failsOnError>true</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-플러그인</artifactId> </플러그인> </플러그인> <보고> <플러그인> <플러그인> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-플러그인</artifactId> </플러그인> </플러그인> </보고> </build>
Checkstyle 오류로 인해 빌드가 실패합니다.
Checkstyle 위반으로 인해 빌드가 실패합니다.
Checkstyle은 테스트 소스도 분석합니다.
대부분의 Checkstyle 형식 지정 규칙을 통과하도록 코드 형식을 다시 지정하는 Spring Java 형식 플러그인을 추가하세요.
빌드 및 보고 단계에 체크스타일 플러그인 추가
일부 규칙을 억제해야 하는 경우(예: 행 길이가 더 길어야 함) ${project.root}/src/checkstyle/checkstyle-suppressions.xml
아래에 억제와 함께 파일을 정의하는 것으로 충분합니다. 예:
<?xml 버전="1.0"?> <!DOCTYPE 억제 PUBLIC "-//Puppy Crawl//DTD 억제 1.1//EN" "https://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> <억제> <suppress files=".*ConfigServerApplication.java" checks="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를 설정하려면 코딩 규칙, 검사 프로필을 가져오고 체크스타일 플러그인을 설정해야 합니다. Spring Cloud Build 프로젝트에서 다음 파일을 찾을 수 있습니다.
└── 소스 ├── 체크스타일 │ └── checkstyle-suppressions.xml (3) └── 메인 └── 자원 ├── checkstyle-header.txt (2) ├── checkstyle.xml (1) └── 인텔리즈 ├── Intellij_Project_Defaults.xml (4) └── Intellij_Spring_Boot_Java_Conventions.xml (5)
기본 체크스타일 규칙
파일 헤더 설정
기본 억제 규칙
대부분의 Checkstyle 규칙을 적용하는 Intellij의 프로젝트 기본값
대부분의 Checkstyle 규칙을 적용하는 Intellij의 프로젝트 스타일 규칙
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
플러그인을 설치해야 합니다. JUnit 어설션을 자동으로 변환하려면 Assertions2Assertj
도 설치하는 것이 좋습니다.
File
→ Settings
→ Other settings
→ Checkstyle
로 이동합니다. Configuration file
섹션에서 +
아이콘을 클릭합니다. 여기에서 체크스타일 규칙을 선택할 위치를 정의해야 합니다. 위 이미지에서는 복제된 Spring Cloud Build 저장소에서 규칙을 선택했습니다. 그러나 Spring Cloud Build의 GitHub 저장소(예: checkstyle.xml
의 경우: https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle.xml
)를 가리킬 수 있습니다. https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle.xml
). 다음 변수를 제공해야 합니다.
checkstyle.header.file
- 복제된 저장소에 있거나 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
를 통해 Spring Cloud Build의 spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
파일을 가리키도록 하십시오. https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
URL.
checkstyle.suppressions.file
- 기본 억제. 복제된 저장소에 있거나 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
을 통해 Spring Cloud Build의 spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
파일을 가리키도록 하십시오. 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는 java 클래스 경로에서 중복되고 충돌하는 클래스와 리소스에 플래그를 지정할 수 있는 basepom:duplicate-finder-maven-plugin
제공합니다.
Duplicate finder는 기본적으로 활성화되어 Maven 빌드의 verify
단계에서 실행되지만 프로젝트 pom.xml
의 build
섹션에 duplicate-finder-maven-plugin
추가하는 경우에만 프로젝트에 적용됩니다.
< 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 >