如何使用child gradle模块的application.properties?

时间:2017-11-01 09:22:29

标签: java spring gradle properties configuration

我有像这样的项目结构。

     parent
     |   |         |
 child1  child2  child3 ....
      |   |
     common

common项目中,我想提取child1child2

的所有常见内容

我想将常用属性提取到常见项目的application.properties

但在提取公共属性之后,如果在子项目中,我写的就是:

@Configuration
public class MongoDataConfiguration {
    @Value("${spring.data.mongodb.database}")
    private String database;

在公共项目的application.properties中找不到属性:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.data.mongodb.database' in value "${spring.data.mongodb.database}"

我怎样才能实现它?

P.S。

settings.gradle

include 'child1'
include 'child2'
include 'child3'
...

在每个孩子中build.gradle

compile project(':common')

P.P.S。

如果将常见项目中的文件重命名为commons.properties并写入:

,则可以正常工作
 @PropertySource("classpath:commons.properties")

但最好有application.properties名称。

1 个答案:

答案 0 :(得分:0)

实际上你将common-project包含在child1,child2中,你只需要使用注释/admin/users/dashboard来搜索child1的application.properties中的属性。如果你想获得common-project中的属性,你应该提供一种在公共项目中获取这些属性的方法。