Я хочу поделиться тестовыми ресурсами между 2-мя модулями A и B. В тестовых ресурсах у меня есть каталог с некоторыми файлами. Как этоСовместное использование ресурсов тестирования между модулями выпуск
-dir
----f1
----f2
Я сделал все в соответствии с Share test resources between maven projects. Теперь из теста 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()
возвращает ложь).
Как я могу справиться с этим?
Обновление. Альтернативное решение с использованием муравей
<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>
спасибо я буду смотреть на этот подход. –
Он выглядит хорошо. Но я решил использовать для этого 'maven-antrun-plugin'. Если вам интересно, ознакомьтесь с обновленным ответом. –