依赖于库时的不同属性文件

时间:2012-08-23 13:39:44

标签: java maven

我有两个不同的项目,A和B.两个项目都加载了自己的属性:

new PropertiesConfiguration("application.properties")

每个application.properties都位于Maven资源根目录中。

当我单独执行Project B时,所有属性都被正确加载。

项目A依赖于项目B.当我执行项目A时,项目B的属性类无法加载正确的属性,因为项目A的属性已加载。

每个Project如何加载正确的属性,即使它们作为依赖项包含在内。我必须指定在不同的上下文中加载资源,但我不知道如何。

我的资源maven设置:

<resource>
  <directory>${project.build.sourceDirectory}</directory>
  <filtering>true</filtering>
</resource>
<resource>
  <directory>${basedir}/src/main/resources</directory>
  <filtering>true</filtering>
</resource>

2 个答案:

答案 0 :(得分:0)

您可能有一些项目B的特定包,如

com.company.packageB

请将application.properties放入

src/main/resources/com/company/packageB/application.properties

项目A也是如此

答案 1 :(得分:0)

您可以迭代所有这样的application.properties文件

    for (Enumeration<URL> urls = ClassLoader.getSystemResources("application.properties"); urls.hasMoreElements();) {
        URL url = urls.nextElement();
    }

根据您的应用程序,如果找到多个属性文件,您必须选择如何继续。我希望这会有所帮助。