Java Apache Commons配置2-类路径中的多个同名配置文件

Java Apache Commons配置2-类路径中的多个同名配置文件,java,configuration,apache-commons-config,Java,Configuration,Apache Commons Config,我试图做的事情与这个问题完全相同:但是使用ApacheCommonsConfiguration 2 到目前为止,我已经尝试在classpath中创建第一个具有test.properties的maven项目: test1=value1 test2=value2 然后,我用另一个test.properties创建了另一个maven项目,如classpath中的: test1=value1 test2=value2 在第二个项目中,我在第一个项目上添加了一个依赖项,并创建了一个main,其中我

我试图做的事情与这个问题完全相同:但是使用ApacheCommonsConfiguration 2

到目前为止,我已经尝试在classpath中创建第一个具有test.properties的maven项目:

test1=value1
test2=value2
然后,我用另一个test.properties创建了另一个maven项目,如classpath中的:

test1=value1
test2=value2
在第二个项目中,我在第一个项目上添加了一个依赖项,并创建了一个main,其中我添加了:

public static void main(String[] args) throws Exception {

    Configurations configurations = new Configurations();
    PropertiesConfiguration configuration = configurations.properties("test.properties");
    System.out.println(configuration.getString("test1"));

}
当我运行main时,我想得到
value1
,但我得到
null
。显然,我创建PropertiesConfiguration的方式并没有读取第一个模块中的test.properties文件


有什么想法或建议可以实现这一点吗?

我通过使用
getClassLoader().getResources(“…”)
获取URL,然后迭代这些URL以加载属性文件,并将它们放入
复合配置中

不过,我还是希望ApacheCommonsConfiguration2能够直接处理这个用例

也许存在一种更漂亮的方式

public static void main(String[] args) throws Exception {

    Configurations configurations = new Configurations();
    CompositeConfiguration compositeConfiguration = new CompositeConfiguration();

    Enumeration<URL> urls = ConfigurationTest2.class.getClassLoader().getResources("test.properties");
    while(urls.hasMoreElements()) {
        PropertiesConfiguration propertiesConfiguration = configurations.properties(urls.nextElement());
        compositeConfiguration.addConfiguration(propertiesConfiguration);
    }
    System.out.println(compositeConfiguration.getString("test1"));

}
publicstaticvoidmain(字符串[]args)引发异常{
配置=新配置();
CompositeConfiguration CompositeConfiguration=新的CompositeConfiguration();
枚举URL=ConfigurationTest2.class.getClassLoader().getResources(“test.properties”);
while(url.hasMoreElements()){
PropertiesConfiguration PropertiesConfiguration=configurations.properties(url.nextElement());
compositeConfiguration.addConfiguration(属性配置);
}
System.out.println(compositeConfiguration.getString(“test1”);
}

多个test.properties文件是否在不同的包中?不,这是重点。对于这个POC,我将test.properties都放在
src/main/resources