Java 模块间共享测试资源问题

Java 模块间共享测试资源问题,java,testing,maven,Java,Testing,Maven,我想在两个模块A和B之间共享测试资源。在测试资源中,我有一个包含一些文件的目录。像这样 -dir ----f1 ----f2 我已按计划完成了所有工作。现在,通过B测试,我可以使用以下语法访问资源: this.getClass().getClassLoader().getResource("dir/f1") 它工作得非常好。但我不想要像f1或f2这样的硬核文件名。我真正想要的是从目录中获取所有文件。像 File foo = new File(this.getClass().getClas

我想在两个模块A和B之间共享测试资源。在测试资源中,我有一个包含一些文件的目录。像这样

-dir
----f1
----f2
我已按计划完成了所有工作。现在,通过B测试,我可以使用以下语法访问资源:

 this.getClass().getClassLoader().getResource("dir/f1")
它工作得非常好。但我不想要像
f1
f2
这样的硬核文件名。我真正想要的是从目录中获取所有文件。像

 File foo = new File(this.getClass().getClassLoader().getResource("dir").getFile());
 assert foo.isDirectory()
 foo.list()
 ...
但当我以这种方式创建foo时,它甚至不存在(
foo.exist()
返回false)

我该怎么处理呢

更新。使用ant的替代解决方案

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.5</version>
    <executions>
        <execution>
            <configuration>
                <target>
                    <fileset id="d" dir="${basedir}/src/test/resources/dir" includes="*"/>
                    <pathconvert property="d" refid="d">
                        <map from="${basedir}/src/test/resources/" to=""/>
                    </pathconvert>
                    <touch file="${basedir}/src/test/resources/d/listOfCharts.txt"/>
                    <echo file="${basedir}/src/test/resources/d/listOfCharts.txt" message="${charts}"/>
                </target>
            </configuration>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

org.apache.maven.plugins
maven antrun插件
1.5
包裹
跑

您提到的方法创建了一个JAR,可在以后的测试中使用。你不能用这种方式列出罐子的内容。你需要使用Jar,你需要把它作为一个Jar来读


谢谢,我来看看这个方法。看起来不错。但我决定使用
maven-antrun插件
。如果您感兴趣,请参阅更新的答案。