我有一个maven java项目,在src/main/resources目录中有一个属性文件.我已经在jar中打包了没有属性文件的jar,因此它可以部署到具有不同设置的不同环境,但是单元测试失败了
项目结构是
Properties Application Project |-- pom.xml `-- src |-- main |-- java | `-- java classes |-- resources | `-- myProps.properties `-- target |--properties-app.jar myProps.properties
值将加载到此文件中
public class MyProperties { private Properties myProperties; public MyProperties() { File file = new File("./myProps.properties"); try { myProperties = new Properties(); FileInputStream myPropertiesInputStream = new FileInputStream(file); myProperties.load(myPropertiesInputStream); } catch (IOException e) { e.printStackTrace(); } } public Properties getPropertyValue() { return myProperties.getProperty("value"); } }
单元测试如下
import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; public class MyPropertiesTest { private MyProperties myProperties; @Before public void setup() { myProperties = new MyProperties(); } @Test public void testMyProperties() { assertNotNull(myProperties.getPropertyValue()); } }
我应该使用什么来从目标目录加载属性文件,以便我可以从命令行成功构建它?
我希望你使用的是maven jar插件.如果是这样,请在jar-plugin中使用此配置
.
然后jar将从jar文件的根目录中获取属性文件.