스프링 클라우드 서킷 브레이커 공식 레퍼런스를 한글로 번역한 문서입니다.
전체 목차는 여기에 있습니다.
목차
3.1. Basic Compile and Test
소스 코드를 빌드하려면 JDK 1.8을 설치해야 한다.
스프링 클라우드는 빌드 관련 활동엔 대부분 메이븐을 사용하며, 관심있는 프로젝트를 클론하고 다음과 같이 입력하면 바로 손쉽게 시작해볼 수 있다.
$ ./mvnw install
아래 나오는 예제들에선 메이븐(>= 3.3.3)을 직접 설치한 다음
./mvnw
대신mvn
명령어를 실행해도 된다. 단, 이땐 로컬 메이븐 설정에 스프링 pre-release 아티팩트 전용 레포지토리를 선언해두지 않았다면-P spring
도 추가해야 할 거다.
환경 변수
MAVEN_OPTS
를-Xmx512m -XX:MaxPermSize=128m
등으로 설정해서 메이븐이 사용할 수 있는 메모리 양을 늘려줘야 할 수도 있음을 알아두자. 이런 류의 설정은.mvn
설정으로 커버하려고 하니까, 빌드를 성공시키기까지 메모리 양을 늘려줘야 했다면 깃허브에 설정을 추가할 수 있도록 티켓을 올려주길 바란다.
.travis.yml
을 보면 프로젝트를 빌드하는 방법에 대한 힌트를 얻을 수 있다. “script” 하나가 있을 거고, “install” 명령어가 있을 수도 있다. 로컬에서 실행해야 하는 서비스가 있는지 알고 싶다면 (ex. mongo나 rabbit) “services” 섹션을 참고해라. “before_install”에서 찾을 수 있는 git 관련 내용은 git 자격 증명 설정과 관련이 있는데, 자격 증명은 이미 따로 가지고 있을 거기 때문에 무시해도 좋다.
미들웨어가 필요한 프로젝트는 보통 docker-compose.yml
을 가지고 있으므로, Docker Compose를 통해 Docker 컨테이너에서 미들웨어 서버를 실행하는 게 좋다. 대표적인 mongo, rabbit, redis 등에 대한 구체적인 가이드는 스크립트 데모 레포지토리의 README를 참고해라.
다른 모든 방법에 실패했다면
.travis.yml
에 있는 명령어로 빌드해라 (보통./mvnw install
).
3.2. Documentation
spring-cloud-build 모듈에는 “docs” 프로파일이 있는데, 이 프로파일을 켜면 src/main/asciidoc
에 있는 asciidoc 소스를 빌드하게 된다. 이 프로세스에서 README.adoc
을 찾고 include를 전부 로드해서 처리하지만, 파싱이나 렌더링을 하진 않고 ${main.basedir}
에 그대로 복사한다 (기본값은 $/tmp/releaser-1616017858793-0/spring-cloud-circuitbreaker/docs
, 즉 프로젝트 루트). README에 변경 사항이 있으면 메이븐 빌드 후에 맞는 위치에 수정된 파일로 보여진다. 그대로 변경 사항을 커밋하고 푸시해라.
3.3. Working with the code
딱히 선호하는 IDE가 없다면 코드 작업엔 Spring Tools Suite나 Eclipse를 추천한다. 우리는 메이븐 지원을 위해 eclipse 플러그인 m2eclipse를 사용하고 있다. 메이븐 3.3.3 이상을 사용한다면 다른 IDE나 다른 툴을 사용해도 문제 없다.
3.3.1. Activate the Spring Maven profile
스프링 클라우드 프로젝트에선 스프링 마일스톤과 스냅샷 레포지토리를 리졸브하려면 메이븐 프로파일 ‘spring’을 활성화해야 한다. 사용 중인 IDE 설정을 통해 이 프로파일을 활성화해라. 그렇지 않으면 빌드에 실패할 수도 있다.
3.3.2. Importing into eclipse with m2eclipse
eclipse로 작업한다면 eclipse 플러그인 m2eclipse 사용을 권한다. m2eclipse를 설치한 적이 없다면 “eclipse marketplace”에서 받으면 된다.
구버전 m2e는 메이븐 3.3을 지원하지 않으므로, Eclipse에 프로젝트를 임포트한 뒤에 m2eclipse가 프로젝트에 맞는 프로파일을 사용하도록 알려줘야 한다. 프로젝트에서 POM과 관련된 여러 가지 오류가 보인다면 최신 버전을 받을 수 있는지 확인해봐라. m2e를 업그레이드할 수 없다면
settings.xml
에 “spring” 프로파일을 추가해라. 아니면 부모 pom의 “spring” 프로파일에서 레포지토리 설정을 프로젝트의settings.xml
로 복사해가도 된다.
3.3.3. Importing into eclipse without m2eclipse
m2eclipse를 사용하고 싶지 않다면, 다음 명령어를 통해 eclipse 프로젝트 메타데이터를 생성할 수 있다:
$ ./mvnw eclipse:eclipse
이렇게 생성한 eclipse 프로젝트는 file
메뉴에서 import existing projects
를 선택해 임포트할 수 있다.
Next :Contributing
스프링 클라우드에 컨트리뷰트하기 위한 기본 가이드 (라이선스 동의, 행동 강령, 컨벤션, Checkstyle, IED 셋업)
전체 목차는 여기에 있습니다.