【发布时间】:2014-12-27 15:05:35
【问题描述】:
我正在使用 maven 构建一个可执行的 jar 文件,这意味着您使用“java -jar file.jar”运行它。
我想依赖用户定义的属性(只是一个包含键/值的文件),在开发阶段我将“user.properties”文件放在 maven /src/main/resources/ 文件夹中。
我的属性文件已加载:
final Properties p = new Properties();
final InputStream resource = IOParametres.class.getResourceAsStream("/user.properties");
p.load(resource);
现在,我想将该文件保存在 JAR 之外并拥有类似这样的内容:
- execution_folder
|_ file.jar
|_ config
|_ user.properties
我用 maven-jar-plugin、maven-surefire-plugin 和 maven-resources-plugin 等 maven 插件尝试了很多东西,但我无法让它工作...
提前感谢您的帮助!
【问题讨论】:
-
user.properties 是否只是您保存在 jar 旁边并希望在运行时读取的单独文本文件?因为如果是这样......你可能应该像对待任何其他外部文件一样对待它
-
是的,它只是一个单独的文件,但问题是 1-我不知道用户将把 jar 和配置文件放在哪里 2-我有依赖项使用的其他资源文件(数据库连接等)
-
如果您喜欢外部的属性文件,您需要将类路径设置为指向您的
executon_folder/config/文件夹,否则您将无法访问您的user.properties。所以一个简单的java -jar file.jar是行不通的。 -
@khmarbaise 确实,我尝试了很多东西,当我将“config/”添加到我的清单的类路径时,它实际上可以按我的意愿工作。我尝试使用 maven surefire 插件(带有附加的ClasspathElements 标签)添加它,但它不起作用。你知道如何让它由 maven 自动添加吗? (显然,这是 m2e 限制:yet another maven question)
标签: java maven jar maven-resources-plugin maven-jar-plugin