【发布时间】:2011-03-01 09:52:24
【问题描述】:
我有一个简单的 java maven 项目。我的一个类在执行时需要从类路径加载一个 xml 配置文件。我不想在生成 jar 时打包这样的 xml 文件,但我想在 conf 子文件夹下的 zip 程序集中包含一个默认 xml 文件,并且我还希望这个默认 xml 在单元测试中可用以针对它进行测试。
在我看来,这个默认 xml 有 2 个可能的位置:
src/main/resources/conf/default.xmlsrc/main/conf/default.xml
两种解决方案都需要特殊的 pom 操作:
在解决方案 1 中,我在构建过程中自动复制到目标文件夹,这意味着它可以在测试中使用,但我也在生成的 jar 中得到它,这是我不想要的。
在解决方案 2 中,我得到了我想要的 jar(没有 xml),但我必须手动将 xml 复制到目标文件夹以供测试。 (我不想在测试类路径中添加 src 的子文件夹。我认为这是不好的做法)。
问题:两者的最佳解决方案是什么?
- 如果正确的是 2,将它复制到目标文件夹的最佳方法是什么?
- 有没有比这两个更好更常见的解决方案?
(我也读过Where should I put application configuration files for a Maven project?,但我想从“约定优于配置”的角度了解最“正确的解决方案”,这个链接提供了一些配置类型的解决方案,但没有任何面向约定的解决方案。也许没有一个,但我还是问了。提供的解决方案还包括 AntRun 插件和 appAssembler 插件,我想知道如果没有它们我是否可以做到。)
【问题讨论】: