스프링: 명령줄에서 하나의 application.property를 덮어씁니다.
기본 변수 값을 가진 application.properties 파일이 있습니다.그 중 하나를 변경할 수 있으면 좋겠습니다.mvn spring-boot:run
파일 전체를 변경하는 방법을 찾았는데, 이 속성 중 한두 개만 변경했으면 합니다.
명령줄 인수로 개별 속성을 전달할 수 있습니다.예를 들어 다음과 같이 설정할 경우server.port
실행 가능한 jar를 기동할 때는, 다음의 조작을 실행할 수 있습니다.
java -jar your-app.jar --server.port=8081
또는,mvn spring-boot:run
스프링 부트 2.x의 경우 2.x:
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8081"
또는 Spring Boot 1.x를 사용하는 경우:
mvn spring-boot:run -Drun.arguments="--server.port=8081"
또, 다음의 인수를 설정할 수도 있습니다.spring-boot:run
응용 프로그램의pom.xml
따라서 매번 명령줄에서 지정할 필요가 없습니다.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<arguments>
<argument>--server.port=8085</argument>
</arguments>
</configuration>
</plugin>
약간의 업데이트를 위해 Spring boot 1.X Maven 플러그인은--Drun.arguments
Maven 사용자 속성이지만 Spring Boot 2.X Maven 플러그인은-Dspring-boot.run.arguments
메이븐 사용자 속성
따라서 Spring 2의 경우 다음 작업을 수행해야 합니다.
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8081"
여러 개의 인수를 전달해야 하는 경우,
구분자로 지정합니다.인수 사이에 공백은 사용하지 마십시오.
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8081,--foo=bar"
maven 플러그인 구성과 fat jar에서 인수를 전달하는 방법에 대해서는 변경되지 않았습니다.
그래서 매우 훌륭한 앤디 윌킨슨 답은 여전히 옳다.
빠른 업데이트:
spring-boot 2.X 및 maven 3.X의 최신 버전을 사용하는 경우 다음 명령줄이 서버 포트를 덮어씁니다.
java -jar -Dserver.port=9999 your_jar_file.jar
속성을 바꾸도록 환경 변수를 설정할 수 있습니다.예를 들어 속성 이름이 있습니다.test.props=1
환경변수가 있는 경우TEST_PROPS
스프링 부트가 자동으로 덮어씁니다.
export TEST_PROPS=2
mvn spring-boot:run
덮어쓰기 및 전달에 필요한 모든 속성을 포함하는 json 문자열을 생성할 수도 있습니다.-Dspring.application.json
또는 를 사용하여 json을 내보냅니다.SPRING_APPLICATION_JSON
.
mvn spring-boot:run -Dspring.application.json='{"test.props":"2"}'
또는 -Dtest.props=2를 사용하여 속성을 전달합니다.
mvn spring-boot:run -Dtest.props=2
스프링 부트 시 테스트 완료2.1.17
및 메이븐3.6.3
콤마를 사용하지 않을 경우 다중 모드에서 일부 사용자 지정 속성 또는 스프링 부트 속성을 재정의하려면 다음과 같이 쉼표 대신 공백을 사용합니다.
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8899 --your.custom.property=custom"
Spring Boot에서는 다음과 같이 속성을 덮어쓰도록 프로비저닝이 있습니다.
mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8082
Gradle에 의한 실행:
- 기본 포트(8080)에서 실행:
./gradlew bootRun
- 지정된 포트(888)에서 실행:
./gradlew bootRun --args='--server.port=8888'
- 에 변수가 있는 경우
application.properties
'''PORT
, , 을 합니다.PORT=8888 ./gradlew bootRun
Maven 실행:
- 기본 포트(8080)에서 실행:
mvnw spring-boot:run
- 지정된 포트(888)에서 실행:
mvnw spring-boot:run -Dspring-boot.run.jvmArguments='-Dserver.port=8085'
- 지정된 포트(888)에서 실행:
mvn spring-boot:run -Dspring-boot.run.arguments='--server.port=8085'
- 제공된 포트(888)에서 다른 커스텀속성과 함께 실행합니다.
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8899 --your.custom.property=custom"
-
application.properties
'''PORT
, , 을 합니다.SERVER_PORT=9093 mvn spring-boot:run
「」를 사용합니다.java -jar
:
- .jar 파일을 만듭니다.
- 그래들 ★★★★★★★★★★★★★★★★★★*
./gradlew clean build
. 안에 jar 파일이 있습니다.build/libs/
더입니니다다 - 경우: Maven의 경우:
mvn clean install
수: 항아리target
더입니니다다
- 그래들 ★★★★★★★★★★★★★★★★★★*
- 기본 포트(8080)에서 실행:
java -jar myApplication. jar
- 지정된 포트(888)에서 실행:
java -jar myApplication.jar --port=8888
- 지정된 포트(888)에서 실행:
java -jar -Dserver.port=8888 myApplication.jar
- 「」(8888)를 지정 포토(합니다.
SERVER_PORT
파일 application.properties 파일:SERVER_PORT=8888 java -jar target/myApplication.jar
mvn 클린 설치 실행 후 jar 파일이 있는 경우 다음과 같이 double-을 사용하여 application.yml에 있는 속성을 덮어쓸 수 있습니다.
java -jar name_of_your_jar_file.jar --parameter=value
예를 들어, 서버를 시작할 때 서버 포트를 변경해야 하는 경우 다음을 작성할 수 있습니다.
java -jar name_of_your_jar_file.jar --server.port=8888
언급URL : https://stackoverflow.com/questions/37052857/spring-overriding-one-application-property-from-command-line
'programing' 카테고리의 다른 글
'if' 문장에서 여러 줄의 조건을 스타일링합니까? (0) | 2022.10.06 |
---|---|
스태틱과Java에서의 다이내믹바인딩 (0) | 2022.10.06 |
String의 첫 번째 문자를 소문자로 만드는 가장 효율적인 방법? (0) | 2022.10.06 |
통화 형식으로 소수점 형식을 지정하려면 어떻게 해야 합니까? (0) | 2022.10.06 |
Nuxt.js SSR용 Apollo를 사용한 API 데이터 프리페치 (0) | 2022.10.06 |