Maven에서 톰캣 서버를 직접 실행하기
Java Web 개발을 하다 보면 로컬에 설치된 Tomcat 없이도 Maven 명령어만으로 톰캣 서버를 기동하고 싶은 경우가 있습니다.
예전에는 tomcat6-maven-plugin 또는 tomcat7-maven-plugin을 사용해 mvn tomcat:run으로 톰캣을 실행할 수 있었지만, 이 플러그인들은 현재(2025년 기준) 공식적으로 유지보수가 중단된 상태입니다.
아래는 레거시 방식과 최신 개발 방식(추천)을 모두 정리한 내용입니다.
1. (레거시) Tomcat Maven Plugin 사용하기
먼저 사용자가 준 예전 방법부터 설명합니다. pom.xml에 다음 플러그인을 추가하면 별도의 톰캣 설치 없이 mvn tomcat:run이 가능합니다.
org.apache.tomcat.maven
tomcat6-maven-plugin
2.1
org.apache.tomcat.maven
tomcat7-maven-plugin
2.1
그리고 실행:
mvn tomcat:run
하지만 중요한 사실:
- Tomcat Maven Plugin은 2014~2015년 이후 더 이상 업데이트되지 않음
- Maven Central에서도 최신 Tomcat 버전을 지원하지 않음
- Servlet 3.x/4.x 기반 최신 애플리케이션에서는 문제가 발생할 수 있음
따라서 유지보수 중인 레거시 프로젝트에는 사용할 수 있지만, 신규 프로젝트에서는 절대 사용을 권장하지 않습니다.
2. (대안 1) Tomcat 8+/9+에서 더 이상 공식 Maven Plugin 없음
Tomcat 개발팀은 Tomcat8/9/10용 Maven 플러그인 제공을 종료했습니다. 공식적으로 Tomcat은 WAR 배포 방식 또는 embedded Tomcat(예: Spring Boot)을 권장합니다.
3. (대안 2, 추천) Jetty Maven Plugin 사용
Java Servlet 기반 개발에서 Maven으로 로컬 서버를 실행하려면 Jetty Maven Plugin이 현재 가장 간단하고 안정적인 방법입니다.
pom.xml 설정
org.eclipse.jetty
jetty-maven-plugin
11.0.15
실행
mvn jetty:run
Jetty는 Servlet 4.0 / Jakarta Servlet 5까지 최신 스펙을 지원하며, 톰캣과의 동작 차이는 거의 없고 개발용으로는 매우 편리합니다.
4. (대안 3, 강력추천) Spring Boot 내장 Tomcat 실행
현재 Java Web 개발의 대부분은 Spring Boot 내장 Tomcat 기반으로 이루어집니다. 톰캣 설치도, Maven Plugin도 필요 없습니다.
실행
mvn spring-boot:run
내장 Tomcat은 자동 관리되며, pom.xml에 따로 설정할 필요가 없습니다.
5. 정리
- tomcat6-maven-plugin / tomcat7-maven-plugin → 레거시 전용
- Tomcat8/9/10용 Maven plugin은 공식 제공되지 않음
- Maven에서 서버 실행이 필요하다면 Jetty Maven Plugin 또는 Spring Boot 내장 Tomcat이 최선
- 레거시 프로젝트 유지보수 시에는 tomcat:run 사용 가능
이 글에서처럼 pom.xml에 플러그인만 추가하면 톰캣이 자동 다운로드되며 mvn tomcat:run으로 실행이 가능하지만, 신규 개발에서는 Jetty 또는 Spring Boot 기반으로 전환하는 것을 추천합니다.
'IT·디지털 > IT 개발자 팁' 카테고리의 다른 글
| Spring에서 CharacterEncodingFilter로 UTF-8 적용하기 (web.xml & Java 설정 & Spring Boot) (0) | 2016.04.29 |
|---|---|
| iis7 64bit 에서 32bit 응용프로그램 사용시 html asp 매핑 사용하기 (0) | 2015.06.16 |
| [iOS] iOS8 AlertView 텍스트 상단 정렬 문제와 해결 방법 (0) | 2014.10.10 |
| [iOS] iPhone에서 올바른 URL 인코딩 방법 (Objective-C & Swift 최신 정리) (0) | 2013.12.10 |
| [iOS] NSNotificationCenter 사용법 정리 (2025 최신 버전: NotificationCenter / Swift 포함) (0) | 2013.12.05 |