我的项目结构如下所示.我不希望将配置文件包含为资源,而是在运行时读取它,以便我们可以简单地更改设置而无需重新编译和部署.我的问题是两件事
我的项目结构:
myproj\
\src
\main
\config
\com\my_app1\
config.dev.properties
config.qa.properties
\java
\com\myapp1\
\model\
\service\
\util\
Config.java
\test
Run Code Online (Sandbox Code Playgroud)
Config.java:
public Config(){
try {
String configPath = "/config.dev.properties"; //TODO: pass env in as parameter
System.out.println(configPath);
final File configFile = new File(configPath);
FileInputStream input = new FileInputStream(configFile);
Properties prop = new Properties()
prop.load(input);
String prop1 = prop.getProperty("PROP1");
System.out.println(prop1);
} catch (IOException ex) {
ex.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
答案1.
尽管我尝试了各种方法,但阅读文件仍然无法正常工作(请参阅我正在尝试的下面的当前实现)
根据您描述的配置文件的位置,
更改
String configPath = "/config.dev.properties";
至
String configPath = "src\main\config\com\my_app1\config.dev.properties";
但是请先阅读第二个答案.
答案2:
使用gradle时,我是否需要告诉它如何构建/或部署文件以及在哪里?我认为这可能是问题的一部分..在进行gradle构建或尝试在Eclipse中调试时,配置文件没有被部署.
你有两个选择:
config目录重命名为resources.Gradle自动在"src/main/resources"目录下构建资源.让Gradle知道要被视为资源的附加目录.
sourceSets {
main {
resources {
srcDirs = ["src\main\config\com\my_app1"]
includes = ["**/*.properties"]
}
}
}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
5578 次 |
| 最近记录: |