[OSS] 02. 오픈소스 기여를 위한 로컬 빌드 환경 구성 (브랜치명, JDK 등) 및 빌드 테스트

2025. 11. 25. 18:35·OpenSource Contribution

 

다루는 내용 

  • 메인테이너가 쓰는 JDK 17과 동일한 벤더(BellSoft)와 버전을 설치함.
  • 로컬 컴퓨터에 깔린 Gradle을 쓰지 않고, 프로젝트에 포함된 gradlew (Wrapper)를 사용하여 정확히 지정된 gradle 버전을 사용함.
  • Spring Java Format 설치 및 Annotation Processor를 설정.

 

설정 과정

CONTRIBUTION.adoc의 마지막 Working with Code 부분을 보면 아래와 같이 준수해야함을 알 수 있습니다.

 

1. Spring Java Format 설치

./gradlew format

- 저는 Spring Project 오픈소스에서 clone 한 spring boot 프로젝트만  플러그인을 적용하고 싶어 gradlew 로 설치했습니다.

- Intellj의 market place에 있는 곳에서 설치를 진행하면 IDE로 여는 프로젝트에 적용되기 때문입니다.

 

2. Working with Code에서 브랜치 별로 써야하는 Spring Boot 버전이 있습니다.

  • main 브랜치는 무조건 JDK 25로 개발되어야함.
  • 3.* 브랜치는 JDK 17로 개발해야함. => 저는 JDK21을 공부하고 있고, Spring Boot 3.4 버전을 사용해본적 있어 3.* 브랜치를 이용할 것입니다.
  • 더 이전 브랜치는 JDK 1.8 로 개발

Working with Code
branch list

 

3. JDK 17 버전으로 사용 - Vendor: BellSoft Liberica JDK(문서 권장사항 준수)

- Intellj 에서 다운로드

- Full 이 붙은 경우는 Java UI를 만드는 것을 포함하여 이를 미포함한 BellSoft Liberica JDK 를 선택.

 

4. Gradle JVM 설정 - 프로젝트 jdk와 동일하게 맞춰야함.

 

 

5. annotation processing 켜기

  • 인텔리제이에서 우클릭하여 이동하여 파일을 볼 수 있는건 ide에서 제공하는 인덱싱 기능
  • annotation processing은 application.properties와 같은 설정파일 및 롬봄이 적용된 코드 빌드할 때 켜저있어야함.
  • 컴파일 시점에 프로세서가 동작하여 메타데이터 관련 json을 생성. server.port 설정 키와 ServerProperties 클래스의 port 필드랑 연결됨을 알려줌.

Build, Execution, Deployment > Compiler > Annotation Processors

 

6. 현재 clone한 프로젝트는 원격 main 브랜치와 연결된 로컬의 main브랜치입니다  원격의 3.4.x 브랜치를 최신 버전으로 삼기 위해 upstream 키워드를 remote로 등록합니다. 그 후 로컬 브랜치를 workspace로 브랜치를 변경합니다.

- 로컬 브랜치명은 아직 무엇을 고칠지 모르기 때문에 아무거나 설정합니다.

 

git remote add upstream https://github.com/spring-projects/spring-boot.git
git fetch upstream // 원격 저장소의 최신 내용을 로컬 저장소에 다운로드
git checkout -b workspace upstream/3.4.x

 

 

7. JDK를 21에서 17로 변경하고, 브랜치를 변경한 후 빌드가 성공적으로 되는지 가벼운 모듈로 테스트 진행 'spring-boot-loader-tools'

./gradlew :spring-boot-project:spring-boot-tools:spring-boot-loader-tools:build

 

 

 

지금까지 Spring Boot의 3.4.x 버전의 오픈소스 기여를 위해 환경 설정을 완료했습니다.

'OpenSource Contribution' 카테고리의 다른 글

[OSS] Spring Boot 오픈소스 첫 기여 성공!  (0) 2025.12.19
[OSS] 04. milestone에 PR등록되다 (간단한 후기)  (0) 2025.11.26
[OSS] 03. Spring Boot 에 첫 Pull Request 날리기 - instanceof 패턴 매칭 적용 + 시도한 것들  (0) 2025.11.26
[OSS] 01. Spring Boot 오픈소스 기여 -CONTRIBUTING.adoc 정리  (0) 2025.11.20
'OpenSource Contribution' 카테고리의 다른 글
  • [OSS] Spring Boot 오픈소스 첫 기여 성공!
  • [OSS] 04. milestone에 PR등록되다 (간단한 후기)
  • [OSS] 03. Spring Boot 에 첫 Pull Request 날리기 - instanceof 패턴 매칭 적용 + 시도한 것들
  • [OSS] 01. Spring Boot 오픈소스 기여 -CONTRIBUTING.adoc 정리
geologs
geologs
geologs 님의 블로그 입니다.
  • geologs
    geolog
    geologs
  • 전체
    오늘
    어제
    • 분류 전체보기 (20) N
      • Artificial Intelligence (1)
        • Vibe Coding (0)
        • RAG (0)
      • Algorithm (10) N
      • SpringBoot (0)
      • Network (0)
      • Architecture (0)
      • Design Pattern (1)
      • OpenSource Contribution (5)
      • 취준 (0)
      • 트러블슈팅 (2)
      • 자격증 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Template Resolver
    opensource contribution
    코드트리
    Dispatcher Servelt
    개발자루틴
    Plan Mode
    TemplateInputException
    setting.gradle
    AWS SAA 합격후기
    spring boot
    ParseException
    c++
    사과담기게임
    백준2828번
    오픈소스 빌드 환경 구성
    시뮬레이션1
    Edit On Mode
    코테독학
    claude code 설치
    preHandle
    코딩테스트
    Spring boot 로컬 빌드 환경 구성
    HandleMethod
    mavenCentral()
    open source contribution
    코테공부
    사각형칠하기
    SAA 단기 합격
    코드트리 #코딩테스트 #코테공부 #코테준비 #알고리즘공부 #갭체크
    gradle wrapper
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
geologs
[OSS] 02. 오픈소스 기여를 위한 로컬 빌드 환경 구성 (브랜치명, JDK 등) 및 빌드 테스트
상단으로

티스토리툴바