指定属性文件的Java路径

指定属性文件的Java路径,第1张

概述我有一个使用Maven配置的Java Spring项目.随着单元测试及其配置文件的数量快速增加,我正在尝试将测试配置集中到一个属性文件(同一个属性文件,用于构建项目).单元测试位于树中(当然相对于项目路径)src/test/java/com (...)这些测试的资源文件位于src/test/resources(...)最后,资源文件应该读取的属性文件位于目录

我有一个使用Maven配置的Java Spring项目.随着单元测试及其配置文件的数量快速增加,我正在尝试将测试配置集中到一个属性文件(同一个属性文件,用于构建项目).

单元测试位于树中(当然相对于项目路径)

src/test/java/com (...)

这些测试的资源文件位于

src/test/resources(...)

最后,资源文件应该读取的属性文件位于目录中

src/main/filters

现在,我有一个Junit类,我在其中指定配置文件位置,如下所示:

@ContextConfiguration(locations = { "classpath:com/initrode/quartz/SyncManagerJobTest-context.xml"})

在配置文件SyncManagerJobTest-context.xml中有一行

这导致从目录中读取属性文件.我想读的是属性文件,它位于src / main / filters下.我尝试使用../../向上遍历目录,但这没有帮助.使用classpath:也没有用.我可以使用带有“file:”的绝对路径,但这需要项目中的每个开发人员修改配置,这也不好.

总而言之,问题是:如何强制src / test / resources /中的配置文件读取src / main / filters中的属性文件?

还有一个相关的奖励问题:在Java环境中处理文件时,是否还有其他修饰符而不是“file:”和“classpath:”?

最佳答案如果指定src / main / filters作为资源位置,Maven会将资源移动到目标/类,并在构建期间将类编译到同一位置.然后,您没有相对路径来处理,因为它们具有相同的根.如果您不这样做,您的过滤器目录将不会包含在构建中.

更新:当然,您的测试代码将输出到目标/测试类,因此为了简化测试,您可以指定在process-test-resources阶段将src / main / filters复制到target / test-classes.我修改了示例以显示该行为.

如果尚未执行此 *** 作,则可以使用build-helper-maven-plugin将filters文件夹添加为资源位置.

这样做的配置如下所示:

总结

以上是内存溢出为你收集整理的指定属性文件的Java路径全部内容,希望文章能够帮你解决指定属性文件的Java路径所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265926.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)