【问题标题】:Best practice to update application-prod.yml更新 application-prod.yml 的最佳实践
【发布时间】:2017-01-31 12:17:31
【问题描述】:

我想用 Jenkins 部署我的 jhipster 应用程序。我已经开发了 2 个工作,一个是构建和生成战争文件,第二个是在服务器上部署我的战争文件。 在第二个中,我想在我的 war 文件中更新 application-prod.yml,因为我的工作是用于部署在不同的环境中。我使用 jar -uf 更新我的战争文件,但结果是我的战争文件内容只有 application-prod.yml 之后。 我尝试使用 jenkins 的 shell 构建步骤来解压缩我的 war 文件,但我认为这不是真正的 war 文件,因为我的 unzip shell 命令失败。你能帮我使用最佳实践吗,非常感谢。

【问题讨论】:

    标签: jenkins war jhipster


    【解决方案1】:

    我不认为将您的 application-prod.yml 集成到您的 war 文件中是一种好习惯。将其作为外部文件提供通常要好得多。

    【讨论】:

    • 好的,我在启动我的应用程序时使用此选项 java -jar MyApplication.war --spring.config.location=file:\application-prod.yml 但它不行,因为我选择了应用程序- prod.yml 在我的战争文件中。
    • 如果您更改配置文件,您应该指定一个文件夹而不是文件本身作为这项工作。始终使用默认搜索路径 classpath:,classpath:/config,file:,file:config/,与 spring.config.location 的值无关。此搜索路径按优先级从低到高排序(file:config/wins)。
    • 因此,如果您将 application-prod.yml 放在 jar/war 文件旁边的 config 文件夹中,则无需指定 spring.config.location 即可。您应该考虑在您的src/main/resources 中有一个application-prod.yml 有什么用处
    • 很好,非常感谢,我找到了 spring.config.location 不起作用的原因。我的 application-prod.yml 是一个模板文件,我有这样的键/值:port = @webapp_port@ 我在使用 Jenkins 作业部署我的应用程序时设置了端口。在这种情况下,yml 文件无效,所以我的很多参数都没有加载!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2022-08-02
    • 2010-10-01
    • 2011-03-16
    • 2023-03-13
    相关资源
    最近更新 更多