Maven: Как мой модж может получить доступ к собственным ресурсам? - PullRequest
5 голосов
/ 20 февраля 2010

У меня есть проект (здесь он называется my-artifact), который должен генерировать источники из файла модели.Я создал плагин maven (my-code-generator), который используется, как описано в приведенном ниже отрывке pom.xml.Он загружает и обрабатывает model.xml из ресурсов my-artifact и генерирует код, используя некоторые предопределенные шаблоны, хранящиеся в плагине.Вопрос в том, как my-code-generator может получить доступ к этим шаблонам, поскольку они находятся не в ресурсах проекта, а в его собственных ресурсах.

Заранее спасибо


my-group
генератор my-code
0.0.1-SNAPSHOT


src / main / resources / model.xml




generate-sources

генерировать модель





org.codehaus.mojo
build-helper-maven-plugin


add-source
generate-sources

add-source

цель / генерируемые источники





Ответы [ 2 ]

5 голосов
/ 20 февраля 2010

Просто используйте ClassLoader, чтобы получить ресурсы из плагина MyCodeGenerator Maven.

Добавьте что-то подобное в ваш MyCodeGeneratorMojo

    URL getTemplate(String fileName) {
        return this.getClass().getResource(fileName);
    }

В плагине MyCodeGenerator Maven добавьте шаблон (ы) в каталог src/main/resources (не забудьте использовать правильную запись пакета (каталоги) в этом каталоге).

3 голосов
/ 20 февраля 2010

Включив их в файл jar для плагина и ссылаясь на них через classpath, через ClassLoader.getResourceAsStream.

Путем упаковки их как другого артефакта, объявления их как зависимости и вызова API разрешения зависимостей, что требует гораздо больших усилий.

...