2016-08-12 6 views
1

У меня есть проблема в бизнес-коде нашего сервера приложений JAVA EE. Мы доступ к некоторым файлам внутри папки src/main/resources сarquillian добавить ресурсы из основной папки

InputStream inputStream = Thread 
       .currentThread() 
       .getContextClassLoader() 
       .getResourceAsStream(filePath); 

В производстве это работает, но я хотел бы проверить часть кода, которые используют эту функцию в моем arquillian теста.

Мы используем термоусадочную пленку для генерации нашего test.war.

WebArchive testArchive = ShrinkWrap.create(WebArchive.class, "test.war") 
       .addPackages(true, "ch.microtronic.evending") 
       .addAsWebInfResource("wildfly-ds.xml") 
       .setWebXML(new File("src/main/webapp/WEB-INF/web.xml")) 
       .addAsResource("test-persistence.xml", "META-INF/persistence.xml"); 

У меня есть некоторые проблемы, чтобы добавить ресурсы src/main/resources к test.war.

Я могу только добавить файлы с src/test/resources.

Наша структура каталогов выглядит следующим образом:

src 
|__main 
| |__java 
| |__resources 
| |__webapp 
| 
|__test 
    |__java 
    |__resources 

Что я должен делать?

+0

Вы пробовали что-то вроде '.addAsResource ("SRC/основные/ресурсов", "/ ресурсы") ; '? –

+0

Да. Проблема в том, что начальный путь внутри 'addAsResource()' уже находится внутри 'src/test/resources'. –

ответ

0

Если вы хотите добавить файлы, которые не находятся в поле «src/test/resources», вам просто нужно использовать перегруженную версию addAsResource(File, String) вместо addAsResource(String, String). Для вашего примера это будет выглядеть так:

.addAsResource(new File("src/main/resources/test-persistence.xml"),"META-INF/persistence.xml"); 

Я только что решил аналогичную проблему в своем коде, поэтому этот подход определенно работает.

0

Чтобы включить поддерево, я использую следующее.

Скажите, что вам нужно в пути к классам все файлы src/main/resources/db/migration в db/migration/FILE_NAME

Path resources_dir = Paths.get("src", "main", "resources"); 
Path migrations_dir = resources_dir.resolve(Paths.get("db", "migration")); 
Files.walk(migrations_dir) 
    .forEach((p) -> jar.addAsResource(p.toFile(), 
            resources_dir.relativize(p).toString())); 

релятивизировать

Смежные вопросы