【问题标题】:Run jar with spring profile environment variable使用 spring 配置文件环境变量运行 jar
【发布时间】:2021-01-06 06:13:39
【问题描述】:

我正在尝试使用 spring 配置文件参数来运行 jar 文件,配置文件不起作用:

java -jar -Dspring.profiles.active="test" build/libs/moley2-0.0.1-SNAPSHOT.jar

这是我的 application.yml 文件:

spring:
  profiles: dev
server:
  port:8000
---
spring:
  profiles: test
server:
  port:9000

jar 是使用项目根目录中的gradle build 创建的。使用提供的命令运行 jar 从端口 8080 开始,因此配置文件似乎没有加载。我确定我在这里缺少一些简单的东西,因为我是 gradle / spring 的新手。提前感谢您的任何建议。

【问题讨论】:

  • 你确定gradle build创建一个jar文件吗?
  • 是的,我的意思是该命令运行良好,我认为没有有效的 jar 文件就不会。只是不加载配置文件 bc 端口停留在 8080
  • 删除那些不应该包含的",最好使用常规参数java -jar build/libs/moley2-0.0.1-SNAPSHOT.jar --spring.profiles.active=test

标签: java spring gradle


【解决方案1】:

属性服务器应该是:

server:
  port: 9000

代替:

server:
  port:9000

冒号和值之间缺少空格。


还要注意将配置文件配置为:

spring:
  profiles: dev

deprecated since 2.4.0 版本,应替换为:

spring:
  config:
    activate:
      on-profile: dev

doc 中的更多信息。或者教程here

【讨论】:

  • 谢谢我改变了空间,做了一个 gradle clean 和 gradle build,现在它默认为测试配置文件端口,即使它正确加载了开发配置文件。我得到:以下配置文件处于活动状态:dev 但现在 tomcat 在 9000 上启动,即使为 dev 指定了 8000
  • 它在切换到非弃用的 yaml 后工作。谢谢@Marc
猜你喜欢
  • 2016-10-07
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 2020-05-17
  • 1970-01-01
  • 2019-01-25
  • 2019-10-02
  • 2017-09-06
相关资源
最近更新 更多