Gradle:使用配置文件支持进行多项目构建的多个 application.properties

lis*_*nlb 6 java properties gradle spring-boot application.properties

基本上,我想要具有如下结构:

\n\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 core-module\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main\n\xe2\x94\x82       |   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java\n\xe2\x94\x82       |   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 resources\n\xe2\x94\x82       |       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 application.properties\n\xe2\x94\x82       |       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 application-dev.properties\n\xe2\x94\x82       |       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 application-test.properties \n\xe2\x94\x82       |       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 application-prod.properties\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test\n\xe2\x94\x82           \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dogs-module\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main\n\xe2\x94\x82       |   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java\n\xe2\x94\x82       |   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 resources\n\xe2\x94\x82       |       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 application.properties\n\xe2\x94\x82       |       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 application-dev.properties\n\xe2\x94\x82       |       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 application-test.properties \n\xe2\x94\x82       |       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 application-prod.properties\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test\n\xe2\x94\x82           \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 cats-module\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main\n\xe2\x94\x82       |   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java\n\xe2\x94\x82       |   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 resources\n\xe2\x94\x82       |       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 application.properties\n\xe2\x94\x82       |       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 application-dev.properties\n\xe2\x94\x82       |       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 application-test.properties \n\xe2\x94\x82       |       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 application-prod.properties\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test\n\xe2\x94\x82           \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 birds-module\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main\n\xe2\x94\x82       |   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java\n\xe2\x94\x82       |   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 resources\n\xe2\x94\x82       |       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 application.properties\n\xe2\x94\x82       |       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 application-dev.properties\n\xe2\x94\x82       |       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 application-test.properties \n\xe2\x94\x82       |       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 application-prod.properties\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test\n\xe2\x94\x82           \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 java\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src?\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  • dogscats并且birds模块具有core基本/公共)模块作为依赖项。对于 Gradle 来说,它是compile project(':core').
  • \n
  • dogscatsbirds模块没有任何关系。唯一的共同点是core项目。
  • \n
\n\n

我计划将默认根src目录设置为空,但如果可能的话,我也可以在此处使用application.properties,application-{profile}.properties进行一些初始化。

\n\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 java\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 resources\n            \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 application.properties\n            \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 application-dev.properties\n            \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 application-test.properties \n            \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 application-prod.properties\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何以这种方式加载环境配置文件的属性,以便下一个文件中的属性可以覆盖前一个文件中的属性?

\n\n

例如,core\xe2\x86\x90 dogs

\n\n
    \n
  • 根应用程序.properties
  • \n
  • 根应用程序产品属性
  • \n
  • 核心应用程序属性
  • \n
  • 核心应用程序产品属性
  • \n
  • 狗应用程序属性
  • \n
  • 狗应用程序产品属性
  • \n
\n