我的[多模块maven]项目在lib
文件夹中有一堆二进制文件
我通过设置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依赖项来摆脱这些二进制文件(而不是在repo中检查它们)。所以我创建了一个包含这些二进制文件的jar文件,并作为依赖项添加:
不,我不确定如何设置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>
我哪里错了?
答案 0 :(得分:1)
您注释掉了forking指令。一旦您的JVM运行,您就无法追溯地重新配置它。
加载路径的配置不是动态的,因此启动运行Maven的JVM不会获得LD_LIBRARY_PATH和其他指令。如果没有forking指令,就不会启动新的JVM,因此这些指令实际上没有做任何事情。
启用分叉后,将按照您的指定配置启动的子JVM,以便它们具有预期的行为。
由于您认为这些项目会被加载,因此您的其余问题将基于错误的前提。你可能会感觉更好&#34;修复&#34;分叉问题,重新测试,然后重新描述新环境下的(可能的)新问题。