从MAVEN项目的src / test / resources文件夹中读取Config.Properties文件

时间:2017-11-29 17:21:42

标签: maven configuration

我是Maven的新手并使用maven构建项目并尝试从src / test / resources文件夹加载config.properties文件。我试着在我的问题上搜索解决方案,但截至目前还没有成功。有人可以帮我吗?

我的项目结构是这样的:

ProjectName
--- src/test/java
       --- utilities
           ----utilities.java
                 ---getProperty()
----src/test/resources
        ----Configuration
              ---config.properties

pom.xml包含

<build>
   <resources>
     <resource>
       <directory>src/test/resources</directory>
       <filtering>true</filtering>
     </resource>
   </resources>

 </build>

获取配置文件的代码:

public class utilities()
     {
        public void getProperty()
     {
     Properties prp=new Properties();
     String propFilePath = "src/test/resources/Configuration/config.properties";
     String[] tmpArray = propFilePath.split("/");
     String propFileName=tmpArray[tmpArray.length - 1];
     ClassLoader loader = Thread.currentThread().getContextClassLoader();
     InputStream inputStream = loader.getResourceAsStream(propFileName);

                if (inputStream != null)
                    {
                        prp.load(inputStream);
                    } 
     }

}
  

尝试了很多选项,但仍然得到找不到文件异常:在类路径中找不到属性文件'config.properties'   注意:如果我正在使用src / main / resources中的config.properties文件(maven的默认位置)。它工作正常

请帮帮我。在此先感谢!!

1 个答案:

答案 0 :(得分:0)

假设此文件已正确复制到运行时类路径,则可按如下方式解决:

ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream inputStream = loader.getResourceAsStream("Configuration/config.properties");

但是......

  1. A&#39;测试&#39;资源不会出现在非测试运行时类路径上,并且不清楚您发布的代码是否在“测试环境”中运行。或不。
  2. 似乎试图从InputStream inputStream = loader.getResourceAsStream("config.properties")而非InputStream inputStream = loader.getResourceAsStream("Configuration/config.properties")
  3. 加载此文件