Я немного застрял, потому что не уверен, что иду по правильному пути.
В настоящее время у меня есть несколько проектов - один проект, который распространяет файл .zip, содержащий несколько других файлов, включая файл XML и файл JSON. Это уже находится в локальном репозитории Maven, который мы используем, и на данный момент не является проблемой.
Проблема в том, что теперь у нас есть другой проект, который должен использовать этот файл, как во время компиляции, так и во время выполнения. Итак, нам нужно загрузить это как ресурс. Тем не менее, включая эти файлы в банку с помощью:
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-scripts</id>
<phase>compile</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<outputDirectory>target</outputDirectory>
<artifactItems>
<artifactItem>
<groupId>mygroupidhere</groupId>
<artifactId>myartifacthere</artifactId>
<version>myversionhere</version>
<overWrite>true</overWrite>
<classifier>sources</classifier>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
извлекает необходимые файлы для target / sources и включает их в каталог верхнего уровня встроенного jar-файла. Однако я изо всех сил пытаюсь на самом деле загрузить эти файлы , используя код Java в проекте, в котором он находится. Это должно быть совместимо как со сборкой (с юнит-тестами), так и во время выполнения из файла jar ( в банке файлы помещаются в источники / как и следовало ожидать).
Я пытался использовать Files.newInputStream(Paths.get("sources/examplefile"))
, но модульные тесты не пройдены (на данный момент он находится в target / sources / examplefile, который работает, но, очевидно, не будет работать во время выполнения, потому что он будет находиться только в sources / examplefile). ).
Я также попробовал getResourcesAsStream из класса, что имеет смысл во время выполнения, но не будет работать в модульных тестах, потому что оно будет в target, как это взято из зависимости. Модульные тесты должны быть совместимы с файлами в зависимости напрямую (поэтому они больше похожи на интеграционные тесты), в противном случае мы хотим, чтобы этот проект не удалось построить.
Кто-нибудь знает ответ?