Mam następujący scenariusz:projekt Maven z natywnym uzależnienia i kopiowanie plików
myLib jest biblioteką (dla których mam źródła, więc chciałbym, aby umieścić je w projekcie myLib Maven: myLib na przykład). Ta biblioteka ma zależność od słoika, dla której mam tylko słoik i nie można go znaleźć w repozytorium Maven (i NIE chcę go tam instalować). Aby go skompilować, coś takiego by działało: dodaj plik jar do projektu mylib w folderze "lib", np. "lib/thirdpartylib.jar" oraz w pliku pom.xml pliku mylib, dodaj zależność z samoczynnie wybraną grupą/artefaktem/wersją i wpisem "<scope>system</scope><systemPath>${project.basedir}/lib/thirdpartylib.jar</systemPath>
". Projekt mylib skompiluje się dobrze.
Należy zauważyć, że mylib ma również zależność runtime od pliku dll, na przykład thirdparty.dll. Ale dla kompilacji nie jest to ważne.
Jednak co teraz zastanawiam się, jak osiągnąć następujące:
innych projektach, np Projekt "X", który wykorzystuje myLib będą potrzebne
- mylib.jar
- thirdpartylib.jar
- thirdpartylib.dll
,
i będziesz musiał ustawić java.library.path do katalogu (np. "") w taki sposób, słoik i plik DLL trzeciej strony zostaną znalezione przez wirtualną maszynę wirtualną.
Moja troska jest taka: chciałbym, aby sonda/dll trzeciej strony była odpowiedzialna za projekt mylib. To znaczy. Chcę zdefiniować wiedzę, że musisz skopiować słoik i plik DLL trzeciej strony do folderu docelowego i że odnosi się do nich java.library.path, aby być częścią projektu mylib (mylib pom wie, jak to ma być stosowane w innych projektach). Jednak chcę, aby ta wiedza (tj. Instrukcje kopiowania, bez względu na to, jak dokładnie są wykonywane w Maven), była przekazywana do dowolnego innego projektu za pomocą mylib, na przykład X. Czy to jakoś możliwe?
[Moje rozwiązanie hack na razie byłoby to, że mam kopię rzeczy stron trzecich w X, ale nawet wtedy nie wiem jak skopiować/radzić sobie z plikiem DLL, więc musiałem napisać readme mówiąc, że plik dll musi zostać skopiowany do folderu bin uruchomionej maszyny wirtualnej).
Wszelkie sugestie są mile widziane!
Trzymam się rozwiązania, dzięki człowieku. – mtrovo