2016-11-29 4 views
0

меня это [Maven мульти-модуль] проект с кучей бинарных файлов в папке libJava: Может ли LD_LIBRARY_PATH получить доступ к пути к классам?

enter image description here

который я загружаю через Maven, установив LD_LIBRARY_PATH:

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.19.1</version> 
      <configuration> 
       <!--<forkMode>true</forkMode>--> 
       <useSystemClassLoader>true</useSystemClassLoader> 
       <environmentVariables> 
        <LD_LIBRARY_PATH>${basedir}/lib/</LD_LIBRARY_PATH> 
        <DYLD_LIBRARY_PATH>${basedir}/lib/</DYLD_LIBRARY_PATH> 
       </environmentVariables> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Я хочу чтобы избавиться от этих двоичных файлов (а не проверять их в репо), включив их в качестве java-зависимости. Так что я создал файл банку, содержащую эти двоичные файлы и добавлены как зависимость:

enter image description here

Нет, я не знаю, как установить LD_LIBRARY_PATH, чтобы указать на эти файлы. Я попробовал несколько вариантов, но для всех из них библиотека жалуется, что не обнаружила эти двоичные файлы.

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.19.1</version> 
      <configuration> 
       <!--<forkMode>true</forkMode>--> 
       <useSystemClassLoader>true</useSystemClassLoader> 
       <environmentVariables> 
        <LD_LIBRARY_PATH>lib/</LD_LIBRARY_PATH> 
        <DYLD_LIBRARY_PATH>lib/</DYLD_LIBRARY_PATH> 
       </environmentVariables> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Куда я иду не так?

ответ

1

Вы прокомментировали директиву forking. Когда ваша JVM запущена, вы не можете перенастроить ее задним числом.

Конфигурация путей загрузки не является динамической, поэтому JVM, запущенный для запуска Maven, не получает LD_LIBRARY_PATH и другие директивы. Без директивы forking новая JVM не будет запущена, поэтому эти директивы фактически ничего не делают.

При запуске forking запускаемые дочерние JVM будут настроены так, как вы указали, чтобы они имели ожидаемое поведение.

Поскольку вы считали, что эти предметы будут загружены, остальная часть вашего вопроса будет основана на ложной предпосылке. Возможно, вам будет лучше «исправлять» проблему форкинга, повторное тестирование и повторное описание (вероятно) новых проблем в новой среде.

Смежные вопросы