我有两种方法:
1. 使用Java Magic
在这里,我只是跑了一个技巧
@Test
public void testpath(){
//gets me surefire report dir, lies just below /target
File testDir = new File(TestTargetPath.class.getResource("/").getPath());
//Get its parent! location of target
System.out.println("target? " + testDir.getParent());
//modify your properties object to set this as targetDir
}
这打印
target? /home/naishe/workspace/in/naishe/homeapp/target
2. 使用相对路径读取配置文件作为资源
在 Maven 布局中有两个地方可以放置资源文件,例如配置属性。
/src/main/resources
-- 此文件下的文件作为工件的一部分。您可以使用getResource()
以下任何类访问它们/src/main/java
/src/test/resources
- 此下的文件不作为工件的一部分,但它们可从任何类中获得/src/test/java
。
因此,根据您的需要,您可以将您config.properties
的位置保留在一个或两个位置下,并使用以下命令读取配置文件:
Properties props = new Properties();
InputStream stream = AppConfig.class.getResourceAsStream("/config.properties");
props.load(stream);
System.out.println(">> " + props.getProperty("targetDir"));