Java maven nar插件和相关模块中的测试
我有两个maven模块:Java maven nar插件和相关模块中的测试,java,maven,maven-nar-plugin,Java,Maven,Maven Nar Plugin,我有两个maven模块: native wrapper是一个基于系统库的JNI包装器,由nar maven插件构建 主模块-依赖于本机包装器,并在测试期间使用它的JNI调用 本机包装器中的测试工作正常。但是,在主模块中的测试期间,我得到了“UnsatifiedLinkError”-NarSystem无法找到我的JNI库。 本机包装器的pom包括: ... <packaging>nar</packaging> ... <plugin> <group
...
<packaging>nar</packaging>
...
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.0.0-rc-2</version>
<extensions>true</extensions>
<configuration>
<libraries>
<library>
<type>jni</type>
<narSystemPackage>some.native.wrapper</narSystemPackage>
</library>
</libraries>
</configuration>
</plugin>
...
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>native-wrapper</artifactId>
<version>${project.version}</version>
<type>nar</type>
</dependency>
...
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.0.0-rc-2</version>
<extensions>true</extensions>
</plugin>
。。。
纳尔
...
com.github.maven-nar
nar maven插件
3.0.0-rc-2
真的
jni
一些本地包装
我在./target/-中打开了generated.nar,它确实包含“/lib/amd64 Linux gpp/jni/libnative-wrapper-0.1.0-SNAPSHOT.so”。另一个nar(带有java类)包含“/META-INF/nar/some.native.wrapper/native wrapper/nar.properties”
主模块的pom:
...
<packaging>nar</packaging>
...
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.0.0-rc-2</version>
<extensions>true</extensions>
<configuration>
<libraries>
<library>
<type>jni</type>
<narSystemPackage>some.native.wrapper</narSystemPackage>
</library>
</libraries>
</configuration>
</plugin>
...
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>native-wrapper</artifactId>
<version>${project.version}</version>
<type>nar</type>
</dependency>
...
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.0.0-rc-2</version>
<extensions>true</extensions>
</plugin>
。。。
${project.groupId}
本机包装器
${project.version}
纳尔
...
com.github.maven-nar
nar maven插件
3.0.0-rc-2
真的
若我从主模块的pom中删除nar maven插件,maven在本机包装器模块中找不到任何类
如何让nar找到库?看起来,不能只使用
nar
添加工件并运行测试。您应该自己为java设置适当的库路径。我是这样做的(除了主模块的pom):
nar
...
${project.build.directory}/nar/native wrapper-${project.version}-amd64 Linux-gpp-jni/lib/amd64 Linux-gpp/jni/:${project.build.directory}
...
maven surefire插件
一旦
${LIBRARY\u PATH}
${LIBRARY\u PATH}
java.library.tmpdir
${LIBRARY\u PATH}
java.library.path
${LIBRARY\u PATH}
...