programing

springboot embedded tomcat 및 tomcat-

yellowcard 2023. 3. 16. 21:16
반응형

springboot embedded tomcat 및 tomcat-

pom.xml에서 다음과 같은 선언문을 볼 수 있습니다.

   <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    ....

보시다시피 spring-boot-boot-web과 tomcat-boot-web이 선언되었습니다.

spring-boot-boot-web에는 이미 Tomcat이 내장되어 있지 않나요?왜 일부 개발자는 여전히 boot-back-web과 함께 tomcat-back-back-back을 선언합니까?아니면 무슨 이유라도 있나요?

말씀하신 대로spring-boot-starter-web를 포함합니다.spring-boot-starter-tomcat여기서 확인하실 수 있습니다.

spring-boot-starter-tomcat를 포함합니다.tomcat-embed-core여기서 확인하실 수 있습니다.

근데...tomcat-embed-core포함하지 않다tomcat-embed-jasper사실은요.tomcat-embed-jasper에 대한 의존을 포함하는 사람tomcat-embed-core여기서 확인하세요.

아무튼 그...tomcat-embed-jasper로 마크되어 있다.provided즉, 실행 시 JDK 또는 컨테이너가 의존관계를 제공할 것으로 예상됨을 나타냅니다.이 범위는 컴파일 및 테스트클래스 경로에서만 사용할 수 있으며 전이적이지 않습니다.

결론적으로,spring-boot-starter-web에는 Tomcat Embedded Dependency가 포함되지만 Jasper Embedded Dependency는 포함되지 않으므로 별도로 선언해야 합니다.

또한 Spring IO Platform을 부모로 사용하면 의존관계를 쉽게 관리할 수 있습니다.자세한 내용은 제 투고를 참조해 주십시오.

도움이 됐으면 좋겠는데

jcgarcia의 대답에서 확장되었습니다.

spring-boot-maven-plugin은 제공되지만 전쟁으로 빌드할 때 ecj-3.12.3.jar tomcat-embed-jasper-8.5.23.jar라는 두 개의 jar가 추가됩니다.

Java 버전 17, Maven 버전 3.0.0 및 Package Jar에서 2022년에도 이 오류를 겪고 있는 분들에게.나도 방금 같은 문제에 부딪혔어. 비록 우리가 그 문제를 해결했지만<scope>Provided</scope>Maven은 항아리를 집지 않는다.대신 이 기능을 완전히 해제하고 종속성을 추가한 후 Maven을 실행하여 종속성을 다시 설치합니다.확실히 고쳐질 거예요.따라서 pom.xml 파일은 다음과 같습니다.

부터

 <dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

로.

 <dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

언급URL : https://stackoverflow.com/questions/42154614/springboot-embedded-tomcat-and-tomcat-embed-jasper

반응형