spring - Maven spring-boot:run 目标:简化命令行
问题描述
我需要简化一个丑陋且没有优雅的命令行:
mvn -pl rep-digital-api spring-boot:run -Dspring.application.json='{ "server.port": 8081, "spring": { "datasource": { "url": "jdbc:postgresql://localhost:5432/frontoffice", "username": "frontoffice", "password": "password", "driverClassName": "org.postgresql.Driver" }, "redis": { "host": "localhost", "port": 6379 } }, "api.url-oauth": "http://localhost:8081/oauth/token", "url-ui": "http://localhost:3000", "document.upload-dir":"/home/jcabre/data/upload", "document.pending-key":"server3-pending" }'
如您所知,我只需要在spring.application.json
配置参数上发送配置。
我不知道使用属性文件是否可以成为解决方案。
有任何想法吗?
解决方案
您使用具有环境变量或系统属性作为源的Spring Boot方式的外部化配置:
来自 SPRING_APPLICATION_JSON 的属性(嵌入在环境变量或系统属性中的内联 JSON)。
因此,作为替代方案,您可以将命令包装在一个 bash/sh 脚本中,该脚本对 env 变量进行赋值并运行 spring boot,但这并不是真的更具可读性:
SPRING_APPLICATION_JSON = '{ "server.port": 8081, "spring": { "datasource": { "url": "jdbc:postgresql://localhost:5432/frontoffice", "username": "frontoffice", "password": "password", "driverClassName": "org.postgresql.Driver" }, "redis": { "host": "localhost", "port": 6379 } }, "api.url-oauth": "http://localhost:8081/oauth/token", "url-ui": "http://localhost:3000", "document.upload-dir":"/home/jcabre/data/upload", "document.pending-key":"server3-pending" }'
mvn -pl rep-digital-api spring-boot:run
作为 JSON 内联的其他替代方法,您还可以将 JSON 作为 JNDI 变量提供,如下所示:java:comp/env/spring.application.json.
但是使用 JDNI 似乎有点复杂并且不够明显。
事实上,您正在评估许多房产。因此,使用外部化配置文件似乎更好地读取/更新它们。我建议您在属性或 YAML 外部文件中定义它们:
mvn -pl rep-digital-api spring-boot:run
-Dspring-boot.run.arguments=-spring.config.location=classpath:/foo.properties
或用于spring.config.additional-location
添加而不是覆盖默认位置(来自 Spring Boot 2):
mvn -pl rep-digital-api spring-boot:run
-Dspring-boot.run.arguments=--spring.config.additional-location=classpath:/foo.properties
推荐阅读
- r - 将包含月份的日期/时间作为字符串转换为日期格式
- visual-studio - Nuget 包源设置
- php - HTML 渲染延迟 - Laravel
- ios - 使用 Alamofire 解码 json 时出错
- json - Swift 4 可解码 var 可以是 Bool 或自定义类型
- android - 应用程序被杀死时Android BroadcastReceiver不工作
- node.js - 使用 node.js 的简单 AWS Lambda 函数
- java - Eclipse 部署组件找不到项目的条目
- bootstrap-4 - ng-bootstrap 依赖和警告
- java - Java Stream API 如何改进表达