У меня есть обработчик аннотации, который должен генерировать перечисление с ключами, определяемыми методами getter интерфейса.Не удается загрузить ресурсы в обработчике аннотации (не на пути к классам)
Интерфейс находится в
MyProject/SRC/основной/Java/my.package.MyInterfaces.java.
Я хочу проверить свойства файлов, которые находятся в MyProject/src/main/resources/META-INF/resource-bundle/
, если они содержат ключи, определенные в сгенерированном перечислении.
Моя проблема в том, что файлы свойств недоступны через загрузчик классов процессора или через Filer.getResource (...).
Как я могу сделать источник или путь к классу этого проекта доступным для процессора, чтобы я мог загружать файлы свойств?
Теперь у меня есть только ресурсы в банке, где находится процессор. Я попытался определить -classpath и/или -sourcepath через eclipse Project/Properties/Java компилятор/Обработка аннотации/Параметры процессора, но это не сработало.
Неужели кто-нибудь сталкивался с такой проблемой, и может ли кто-нибудь дать мне понять, как я могу сделать ресурсы доступными для процессора?
У меня есть структура maven, но я не использую maven из-за старых зависимостей внутри приложения. Так что maven теперь не вариант для меня.
Затмение 3,6 Helios Кажется, что
StandardLocation.SOURCE_PATH
иStandardLocation.CLASS_PATH
не реализованы в Filer # getResource(), так что написание сгенерированные исходные или файлы классов вSOURCE_PATH
илиCLASS_PATH
кажется не возможным, а также доступ к любым файлам наSOURCE_PATH
иCLASS_PATH
*
Спасибо.
Да, похоже, что это не реализовано. Любой обходной путь? – Arne
Вы каждый раз решаете эту проблему? У меня есть аналогичная проблема: http://stackoverflow.com/questions/29658252/how-to-obtain-the-right-javafilemanager-in-a-java-annotation-processor – jurgenv
Более важным, чем расположение источника, является местоположение в вашей выходной папке. Вы проверили, что файл также находится в выводе/META-INF/resource-bundle? Как вы строите? Какова ваша папка вывода и какой путь вы указываете при загрузке пакета? –