긍께 외장톰캣에 넣는 jar는 플레인jar고,
내장톰캣포함해서
jar로만 서버 돌릴 수 있는게 bootJar이란거지?
docker-compose로 컨테이너 띄울 떈 bootJar로 띄우는게 일반적이니까
enabled = false로 설정해서 플레인Jar안나오도록 하는거고?
1. 외장 톰캣에서 사용하는 JAR (plain JAR
)
- 특징:
- Spring Boot의 부트스트래핑 로직과 내장 톰캣/제티 같은 임베디드 웹 서버가 포함되지 않음.
- 순수 Java 라이브러리 또는 모듈로 동작하며, 외장 톰캣에 배포하려면
.war
파일로 패키징하는 것이 일반적.
- 사용 사례:
- 외장 톰캣에서 애플리케이션을 실행할 때.
bootJar
대신plain JAR
이 필요할 때.
2. 내장 톰캣 포함 실행 가능한 JAR (boot JAR
)
- 특징:
- Spring Boot의 부트스트래핑 로직과 내장 톰캣/제티 서버를 포함.
- 독립적으로 실행 가능한 애플리케이션 JAR 파일을 생성.
- 사용 사례:
- Docker 컨테이너 내부에서 실행.
- 별도의 애플리케이션 서버(외장 톰캣 등) 없이
java -jar app.jar
로 바로 실행.
3. jar { enabled = false }
설정의 이유
- Spring Boot 프로젝트에서는
bootJar
만 있으면 충분하기 때문에, 불필요한plain JAR
파일 생성을 방지합니다. - Gradle 기본 동작으로는
plain JAR
와boot JAR
을 모두 생성하려고 하므로,plain JAR
을 명시적으로 비활성화하는 것입니다.
4. Docker Compose에서의 일반적인 방식
- Docker Compose를 사용할 때는 독립적으로 실행 가능한
bootJar
가 일반적입니다. - 이유:
- Docker 컨테이너 내부에서 실행하기 때문에 내장 톰캣이 포함된
bootJar
가 더 편리합니다. - 외장 톰캣을 따로 설치하고 설정할 필요 없이, 애플리케이션 JAR 파일 하나로 모든 기능이 실행됩니다.
- Docker 컨테이너 내부에서 실행하기 때문에 내장 톰캣이 포함된
결론
- 외장 톰캣 사용:
plain JAR
또는.war
를 생성하여 사용. - Docker Compose 사용:
bootJar
만 생성하고 실행. jar { enabled = false }
는plain JAR
생성을 비활성화하기 위한 최적화 설정.
'GPT Archiving' 카테고리의 다른 글
Java - CompletableFuture & addCallBack (0) | 2025.01.06 |
---|---|
kafka - ProducerRecord (0) | 2025.01.06 |
kafka Sticky (0) | 2025.01.06 |
dockerfile - 의존성 캐싱 (1) | 2025.01.06 |