0

我对兄弟模块中的一些测试有疑问。

我在资源/中的模块 1 中有以下文件夹: sql/statements 该文件夹中的所有文件都加载了以下代码:

URL url = this.getClass().getClassLoader().getResource("sql/statements");
assert url != null;
Collection<File> files = FileUtils.listFiles(new File(url.getPath()),
    FileFilterUtils.suffixFileFilter("sql.xml"), TrueFileFilter.INSTANCE);

这工作正常:

  • 在 intellij 中用于兄弟模块
  • 在带有 xml 文件的模块中的 intellij 内部
  • 在带有 xml 文件的模块中使用 maven clean install

但是由于某种原因,当我在兄弟模块的测试中引用此类时,当我从命令行运行全新安装时,它无法找到 xml 文件。

我该如何解决这个问题?

编辑:当它失败时,它会打印下面的 url 路径,看起来没问题(?): url:jar:file:/home/<user>/.m2/repository/<path>/1.0.0/<jar-name>1.0.0.jar!/sql/statements

4

2 回答 2

0

检查您的 POM 文件:您可能只是在“sql/xml”模块的构建中复制资源。如果您想在兄弟模块中使用它,最好将其移至父 POM。

于 2013-09-25T09:31:42.613 回答
0

至于这个Maven 文档,测试资源应该存储在

src/test/resources

但是您可以将参数设置testResources为与主要资源相同的目录

    <build>
        <testResources>
            <testResource>
               <directory>src/main/resources</directory>
               <filtering>true</filtering>
            </testResource>
         <testResources> 
         <resources> <!-- this is default setting -->
             <resource>
                <directory>src/main/resources</directory> 
                <filtering>true</filtering>
             </resource>
         </resources>
于 2013-09-25T09:33:11.423 回答