maven-surefire-plugin,DLLs和java.library.path

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (33)

我有一个Maven依赖项,需要运行时的DLL。我想要做的只是将该dll放在resources/lib文件夹中,并将其DLL放到target目录中。所以我做了什么:

  1. 添加了DLL src/main/resources/lib
  2. 修改pom.xml为使用参数-Djava.library.path = $ {basedir} / lib像这样: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <forkMode>once</forkMode> <workingDirectory>target</workingDirectory> <argLine>-Djava.library.path=${basedir}/lib</argLine> </configuration> </plugin>

但是,我仍然得到运行时错误,DLL不存在于java.library.path中

提问于
用户回答回答于

<argLine/>指向一个不正确的路径。试试这个:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <forkMode>once</forkMode>
        <workingDirectory>target</workingDirectory>
        <argLine>-Djava.library.path=${basedir}/src/main/resources/lib</argLine>
    </configuration>
</plugin>

如果这个DLL只用于测试,你应该把它放在下面src/test/resources。在这种情况下,<argLine/>路径将变为${project.build.directory}/test-classes

扫码关注云+社区