【发布时间】:2015-10-29 16:34:35
【问题描述】:
我正在使用 gradle 构建 Spring Boot 应用程序,并且我希望将 application.properties 文件从战争中删除,因为它将在外部加载(这是在 tomcat 容器中运行,而不是嵌入)。
我查看了 StackOverflow 和 Gradle 文档,试图弄清楚该怎么做,但我不知道要绑定到哪个阶段,以及我是否在创建战争之前或之后排除了该文件。似乎还有多种处理文件的方法。
我相信 Maven 使用 packagingExcludes 来表示等效项。
【问题讨论】:
-
为什么要删除
application.properties?在任何情况下,您都可以通过在生产中运行时指定外部位置来覆盖它们。或者如果找不到属性,您是否希望它失败?因为即使您删除它们,我也很确定您的应用程序会启动并且只使用默认值。 -
据我所知,仅在独立/嵌入式 Tomcat 中支持使用外部属性文件覆盖属性文件的功能,您只需将应用程序作为远 jar(或战争)运行.但是当在外部容器中运行时,该功能就会丢失。但是,如果您知道在 Tomcat 中执行此操作的方法,我很想听听如何做。谢谢。
-
我无法确认/反驳外部配置在外部容器中不起作用。文档 (docs.spring.io/spring-boot/docs/current/reference/htmlsingle/…) 中不起作用的是使用命令行或环境参数/参数。但我也看不出外部配置不起作用的原因。您是否尝试按照文档中的说明通过 JNDI
java:comp/env设置spring.config.location?
标签: gradle spring-boot