Maven spring boot run 디버깅과 인수
보통 다음 명령을 사용하여 Spring Boot 응용 프로그램을 실행합니다.
mvn spring-boot:run -Drun.arguments=--server.port=9090 \
-Dpath.to.config.dir=/var/data/my/config/dir
커스텀 포토를 디버깅 하도록 설정하고, 이클립스로부터 접속할 수 있도록 합니다.예제 https://docs.spring.io/spring-boot/docs/1.1.2.RELEASE/maven-plugin/examples/run-debug.html에서 인수를 추가할 경우
mvn spring-boot:run -Drun.arguments=--server.port=9090 \
-Dpath.to.config.dir=/var/data/my/config/dir \
-Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8787"
그것은 효과가 있지만 같은 다른 논쟁은 효과가 있다.server.port
또는path.to.config.dir
더 이상 인식되지 않고 다음과 같은 예외가 발생합니다.
org.springframework.beans.factory.BeanDefinitionStoreException: Failed
to parse configuration class [com.my.app.Controller]; nested exception
is java.lang.IllegalArgumentException: Could not resolve placeholder
'path.to.config.dir' in string value
file:///${path.to.config.dir}/some.properties"
질문:어떻게 하면 모든 인수를 가지고 달릴 수 있을까요?
매개 변수 이름 앞에 다음을 붙여야 합니다.spring-boot.
에서와 같이-Dspring-boot.run.jvmArgument
Spring Boot 매뉴얼을 통해 실행 시 해결 방법을 알 수 있습니다.Spring Boot 2.0.3
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
이 동작과 변경은 다음 옵션을 사용하기 시작했기 때문에 발생합니다.
응용 프로그램 실행에 사용되는 분기된 프로세스와 관련지어져야 하는 JVM 인수입니다.명령줄에서는 여러 값을 따옴표로 묶어야 합니다.
디폴트로는 Spring Boot Maven 플러그인 사용 시 옵션 설명에 따라 실행도 분기됩니다.
실행 프로세스를 분기해야 하는지 여부를 나타내는 플래그입니다.디폴트로는 프로세스 포킹은 에이전트 또는
jvmArguments
지정됩니다.
그 때문에, 의 사용법은jvmArguments
또한 플러그인 실행의 포크 모드도 활성화했습니다.포킹으로 다른 사람을 주워담는 게 아니라-D
명령줄에서 전달된 인수입니다.
해결 방법: 를 사용하고 싶은 경우jvmArguments
필요한 인수를 모두 전달합니다.
mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8787 -Dserver.port=9090 -Dpath.to.config.dir=/var/data/my/config/dir"
-- Edit 22/09/20 이 답변을 보완하려면 @Stephane의 다른 답변도 체크합니다(파라미터의 프레픽스).
spring-boot 2.0부터는 이름이 변경되었습니다.자세한 내용은 다음을 참조하십시오.
https://docs.spring.io/spring-boot/docs/2.0.2.RELEASE/maven-plugin/run-mojo.html
- run.jvmArguments -> spring-boot.run.jvmArguments
- spring-boot.run.spring-boot.run.disc
redhat 매뉴얼에 따릅니다.
mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$PORT_NUMBER"
Powershell을 사용하여 Maven 명령줄에서 스프링 부트 속성을 재정의합니다.
- 스프링 부트 2.4.4
- 메이븐 3.6.3
- Powershell Windows 10
이 방법은 효과가 있었습니다.
mvn spring-boot:run -D"spring-boot.run.jvmArguments"="-Dimport.dataset.list=importpb"
한 가지 문제가 더 있습니다.pom.xml이 jvmArguments를 정의하면 명령줄 인수는 무시됩니다.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Xmx2048m -XX:NativeMemoryTracking=summary --enable-preview</jvmArguments>
</configuration>
</plugin>
디버깅 속성을 런처 중 하나에 추가하려면
-Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8282"
안 먹힐 거야
언급URL : https://stackoverflow.com/questions/36217949/maven-spring-boot-run-debug-with-arguments
'programing' 카테고리의 다른 글
오라클 저장 프로시저 내에서 다른 사용자의 테이블 액세스 (0) | 2023.07.09 |
---|---|
'헤드 분리' 커밋을 마스터로 되돌리는 방법 (0) | 2023.07.09 |
각도에서의 $broadcast(), $emit() 및 $on() 사용법JS (0) | 2023.03.16 |
AngularJS $watch 창 크기 조정 지시문 내부 (0) | 2023.03.16 |
창 크기를 조정할 때 슬릭 슬라이더가 반응하지 않음 (0) | 2023.03.16 |