programing

Spring Boot Dev Tools 프로덕션에서 전원을 끄시겠습니까?

powerit 2023. 2. 22. 23:16
반응형

Spring Boot Dev Tools 프로덕션에서 전원을 끄시겠습니까?

스프링 개발 도구에 대해 많이 읽었는데 입어봤는데 꽤 멋진 것 같아요.그러나 어떻게 활성화/비활성화되는지 이해할 수 없습니다.예를 들어 종속성을 추가하는 것만으로 모든 것이 마법처럼 작동합니다. 하지만 실제 가동 환경에 코드를 도입하려면 어떻게 해야 할까요?개발 도구가 아직 실행 중이고 프로파일 같은 것으로 비활성화해야 합니까?

아니요, 자동으로 꺼집니다.

Spring Boot 레퍼런스 매뉴얼에서 다음 내용을 참조해 주십시오.

완전히 패키지화된 응용 프로그램을 실행하면 개발자 도구가 자동으로 비활성화됩니다.java -jar를 사용하여 어플리케이션을 기동하거나 특별한 클래스 로더를 사용하여 기동했을 경우, 「실가동 어플리케이션」으로 간주됩니다.종속성에 옵션으로 플래그를 지정하는 것이 프로젝트를 사용하는 다른 모듈에 devtools가 일시적으로 적용되지 않도록 하는 최선의 방법입니다.Gradle은 즉시 사용할 수 있는 옵션의 의존관계를 지원하지 않으므로, 그 사이에 propdeps-plugin을 검토해 보는 것이 좋습니다.

그리고.

devtools가 프로덕션 빌드에 포함되지 않도록 하려면 excludeDevtools 빌드 속성을 사용하여 JAR을 완전히 제거할 수 있습니다.이 속성은 Maven 플러그인과 Gradle 플러그인으로 모두 지원됩니다.

JAR 패키지를 사용하는 Spring Boot 어플리케이션에서는 자동으로 제외됩니다.단, WAR 패키지 스프링 부트프로젝트에서는 그렇지 않습니다.Maven Spring Boot 프로젝트의 경우 종속성을 다음과 같이 표시해야 합니다.provided또, 설정excludeDevTools=true당신의 안에서pom.xml.

devtools를 "제공"으로 변경합니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>provided</scope>
</dependency>

maven spring 빌드 플러그인에서 devtools 제외

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <excludeDevtools>true</excludeDevtools>
    </configuration>
</plugin>

상세한 것에 대하여는, https://github.com/spring-projects/spring-boot/issues/7556 를 참조해 주세요.

spring-boot-devtools는 개발 작업을 용이하게 하기 위한 것입니다.애플리케이션을 패키징 하는 동안, 이 의존성은 포함되지 않습니다.배송 가능한 제품을 만드는 데 사용할 수 없습니다.

저는 maven profile을 사용하여 프로덕션 환경에서 모두 제외할 것을 제안합니다.

언급URL : https://stackoverflow.com/questions/37701330/spring-boot-dev-tools-turning-them-off-for-production

반응형