2013-03-07 15 views
6

Używam programu maven do definiowania moich projektów. Jedna z moich zależności wymaga natywnej biblioteki DLL w środowisku wykonawczym, w związku z czym jest potrzebna w testach i debugowaniu. Natywna biblioteka DLL jest dostępna w znanej lokalizacji. Chcę rozwiązania, które mogę jednorazowo sprawdzić i będzie działać dla wszystkich programistów bez ręcznej konfiguracji przez każdego dewelopera.Jak ustawić plik java.library.path używany przez obiekt Eclipse z POM?

Wiem, że mogę ręcznie ustawić java.libary.path w "uruchom konfiguracjach", co pozwoli mu znaleźć macierzystą bibliotekę DLL, ale wymaga to ręcznej konfiguracji dla każdego programisty.

Wiem, że można również ustawić java.library.path dla danego projektu zależność, ale znowu jest to lokalne dla konkretnego programisty.

W końcu wiem, że mogę ustawić wtyczkę murfire tak, aby określała java.library.path, ale jest to przydatne tylko dla testów uruchamianych przez maven - więc jest to świetne dla naszego serwera budowania, ale nie pomaga programistom używającym JUnit runner in eclipse, lub chcąc debugować lub uruchamiać kod bezpośrednio z zaćmienia.

Czy istnieje wyjście?

Odpowiedz

5

Stwierdziłem, że złącze eclipse m2e, które pasuje do maven-nativedependencies-plugin, wydaje się to naprawić.

Według mavennatives docs:

Od wersji 0.0.7 z Maven-nativedependencies-plugin Jeśli masz zainstalowanego m2eclipse i nativedependencies plugin skonfigurowany rozpakowaniu tubylców zostanie uruchomiony automatycznie, don do rozpakowania potrzebna jest wtyczka eclipse . Jednak aby skonfigurować zmienną środowiskową java.library.path w Eclipse, musisz wykonać ją ręcznie lub automatycznie za pomocą wtyczki Eclipse.

Ten Eclipse plugin jest rozszerzeniem m2eclipse, wykrywa jeśli oddać Maven plugin skonfigurowany, a jeśli nie to wykonuje rozpakowaniu z tubylcami i konfiguruje Native Biblioteka Lokalizacja.

Jeśli importujesz projekt maven, który ma mavennatives plugin skonfigurowany i masz wtyczki integracji m2eclipse na import tubylcy zostaną wydobyte, również podczas wykonywania czyste od zaćmienie tubylcy zostaną wyodrębnione.

Tak więc, jeśli używasz obu tych narzędzi, używanie natywnych zależności nie wymaga ręcznej konfiguracji, innej niż w pom, wystarczy uruchomić aplikację i działa.

Jeśli mam zainstalowany łącznik i dodać mavennatives do mojego POM, a następnie załaduj pom (kliknij prawym przyciskiem myszy na projekcie w pakiet Explorer> maven> Project Update), z „Native lokalizacji biblioteki” projektu jest wypełniane automatycznie (aby zobaczyć, kliknij prawym przyciskiem na projekt> właściwości> Jawa build path> biblioteki> rodzimy lokalizacji Library)

enter image description here

to wydaje się działać dla debugowania, JUnit biegacza, itp

It wymaga tego każdy wysiłek loper zainstalować wtyczkę, która jest ręczna (tak ręczna, jak instalowanie eclipse); jednak przynajmniej raz zainstalowane, gdy będzie działać dla wszystkich/wszystkich natywnych zależności skonfigurowanych dla obiektów przez POM.

2

Funkcja Properties Maven Plugin może pomóc w przekazywaniu właściwości systemu za pomocą ustawienia properties:set-system-properties w celu ustawienia właściwości systemu.

Przykład należy wyglądać następująco: -

<properties> 
    <java.library.path>some/path</java.library.path> 
</properties> 

Mam nadzieję, że to może pomóc.

+0

Nie sądzę, że to pomaga. Mam już pewne właściwości w POM. Problem polega na tym, że zaćmienie, lub biegacz JUnit, jest ich świadom. Dokument, który łączysz dla 'set-system-properties' states" Wymaga wykonania projektu Maven 2.0. " - Nie sądzę, żeby tak się działo, gdy biegacz JUnit jest w trakcie wykonywania. – bacar

Powiązane problemy