我有一个Maven依赖项,需要在运行时使用DLL。我想要做的是在resources/lib
文件夹中简单地使用该DLL并将其DLL放到target
目录中。所以我做的是:
src/main/resources/lib
修改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>
但是我仍然遇到运行时错误, java.library.path 中没有DLL。
答案 0 :(得分:15)
您的<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
。