Mam aplikację, która używa kilku plików konfiguracyjnych (pozwól tylko rozważyć tutaj appli.properties). Pliki te zawierają kilka wartości zależnych od środowiska. Możemy znaleźć jakieś informacje, takie jak:Jak filtrować zasoby podczas kompilacji w projekcie Eclipse?
server.port=${envi.server.port}
po drugiej stronie, mam zestaw plików właściwości, jeden na środowisko (dev.properties, homolo.properties, etc.). Zawierają wartości niektórych właściwości w plikach konfiguracyjnych. Możemy znaleźć tutaj tego rodzaju właściwości:
envi.server.port=4242
Mój build jest obsługiwany przez Maven2. Wszystko działa dobrze.
Jednak teraz muszę zaimportować mój projekt do Eclipse. Moją główną obawą jest filtrowanie plików konfiguracyjnych. Rzeczywiście, jeśli nie zmienię niczego w moim parametrze Eclipse dla mojego projektu (po mvn eclipse: eclipse command), wówczas cały mój plik konfiguracyjny zachowa klucze właściwości (tj. ${envi.server.port}
) zamiast ich wartości. I z takimi plikami konfiguracyjnymi, moja aplikacja nie będzie działać wewnątrz Eclipse ...
Spróbowałem więc dwa rozwiązania:
- w pełnym wymiarze Maven rozwiązanie, używając wtyczki m2eclipse. Dodaję Maven Builder do konfiguracji projektu, a następnie za każdym razem, gdy tworzona jest kompilacja, filtrowanie odbywa się na plikach.
- Ant (która jest używana tylko w środowisku Eclipse). Mam hardly zdefiniowane zadanie, które symuluje filtrowanie plików Maven2 w Ant. To zadanie jest przeznaczone tylko do filtrowania, bez kompilacji.
Powszechnym problemem tych dwóch rozwiązań jest to, że filtrowanie odbywa się przy każdej operacji (zasadniczo zapisuje się w klasie Java), a następnie wymaga czasu. Drugie rozwiązanie jest jednak szybsze (3 sekundy) niż pierwsze (ponad 10 sekund).
Co sądzisz o moim podejściu? Jak mógłbyś to zrobić w lepszy sposób?
Nie rozumiem problemu z korzystaniem z Mavena do filtrowania właściwości. –
@Mike Jeśli rozumiem to poprawnie, to jest to, że kompilacja Mavena jest uruchamiana przy każdej zmianie i zajmuje ~ 10 sekund, aby wykonać filtrowanie, to przeszkadza. –