Java 模块间共享测试资源问题
我想在两个模块A和B之间共享测试资源。在测试资源中,我有一个包含一些文件的目录。像这样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
-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插件
。如果您感兴趣,请参阅更新的答案。