Я хочу разделить тестовые ресурсы между двумя модулями A и B. В тестовых ресурсах у меня есть каталог с некоторыми файлами. Как это
-dir
----f1
----f2
Я сделал все в соответствии с Совместное использование ресурсов тестирования между maven проектами . Теперь из теста 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).
Как с этим справиться?
Обновление. Альтернативное решение с использованием муравья
<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>