인텔리제이는 소스코드를 컴파일한 후에 프로젝트의 빌드선언에 따라서 의존성을 클래스패스 classpath
로 추가하여 실행시킨다. 그래서 스프링부트와 관련해서 build.gradle
에서 providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
가 선언되어 있으면 스프링부트 앱을 실행시킬 때 클래스패스 상에서 내장 컨테이너를 제외한다. 그래서 실제로 인텔리제이상에서 providedRuntime
을 선언해두면
으로 실행되면서 실행안된다.
이클립스는 소스코드만 컴파일하고 실행에 필요한 클래스패스는 빌드경로buildpath 기준으로 잡기 때문에 무리없이 실행된다.
이 두 IDE 의 차이를 이제야 이해했다. @_@)>