[英]How do I configure maven so that the maven exec plugin can access a config file in a directory outside 'src/'
我正在使用以下代码访问属性文件
ClassName.class.getClassloader().getResourceAsStream("config/config.properties"));
和
this.getClass.getClassloader().getResourceAsStream("config/config.properties");
如果属性文件位于资源目录中,则一切正常,我使用maven exec插件运行程序,没有任何问题。 我只需要打电话
mvn exec:java -Dexec.mainClass="MyMainClass"
但是这种方法有很大的缺点。 它包括属性文件
我如何更改Maven配置,以便Maven exec插件可以使用'config / config.properties'文件,而无需将其放置在'src'中,也无需将其包含在jar中?
注意:只是为了澄清,我不知道应用程序在生产环境中运行时所需的配置文件在哪里。 我只知道它在类路径中。 这就是为什么我需要使用getResourceAsStream()
并且不希望它不包含在jar文件中的原因。
如果使用getClassloader().getResourceAsStream()
则意味着您正在尝试访问类路径上可用的文件。 但是,您引用的文件不在类路径中。 因此,您必须选择:
pom.xml
添加<resource>
来实现,但是效果与src/main/resources/config/config.properties
完全相同。 public static void main(String[])
选取它。 或new File("config/config.properties")
读取它,因为它是相对于执行根进行计算的,因此可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.