Mam procesor adnotacji, który będzie generował wyliczenie za pomocą kluczy zdefiniowanych przez metody getter interfejsu.Nie można załadować zasobów w procesorze adnotacji (nie w ścieżce klas)
Interfejs polega
myProject/src/main/JAVA/my.package.MyInterfaces.java.
Chcę sprawdzić pliki właściwości, które znajdują się w MyProject/src/main/resources/META-INF/resource-bundle/
, jeśli zawierają klucze zdefiniowane w wygenerowanym wyliczeniu.
Mój problem polega na tym, że pliki właściwości nie są dostępne przez moduł ładujący klasy procesora lub przez plik Filer.getResource (...).
Jak mogę udostępnić procesor źródłowi lub ścieżce klas tego projektu, aby móc załadować pliki właściwości?
Teraz mam tylko zasoby w jar, gdzie procesor jest dostępny. Próbowałem zdefiniować -classpath i/lub -sourcepath za pośrednictwem eclipse Project/Properties/Java kompilator/przetwarzanie adnotacji/opcje procesora, ale nie wyszło.
Czy ktoś napotkał problem podobny do tego i czy ktoś może mi wskazać, w jaki sposób mogę udostępnić zasoby procesorowi?
Mam strukturę maven, ale nie używam maven, ze względu na stare zależności w aplikacji. Więc maven nie jest teraz dla mnie opcją.
Eclipse 3.6 Helios Wydaje się, że
StandardLocation.SOURCE_PATH
iStandardLocation.CLASS_PATH
nie są realizowane w FILER # getResource(), więc pisanie wygenerowanych plików źródłowych lub klasa doSOURCE_PATH
lubCLASS_PATH
wydaje się nie być możliwe, także dostęp do wszystkich plików naSOURCE_PATH
iCLASS_PATH
*
Dzięki.
Tak, wygląda na to, że nie jest zaimplementowany. Ktoś obejść? – Arne
Czy każdy rozwiązał ten problem? Mam podobny problem: http://stackoverflow.com/questions/29658252/how-to-obtain-the-right-javafilemanager-in-a-java-annotation-processor – jurgenv
Ważniejsze niż lokalizacja źródłowa jest lokalizacja w folderze wyjściowym. Czy sprawdziłeś, czy plik znajduje się również w pliku wyjściowym/META-INF/pakiecie zasobów? Jak budujesz? Jaki jest twój folder wyjściowy i którą ścieżkę określasz przy ładowaniu pakietu? –