Maven-surefire-plugin, DLL и java.library.path
У меня есть зависимость Maven, для которой требуется DLL во время выполнения. Я хочу, чтобы просто иметь эту DLL в папке resources/lib
и поместить ее библиотеки DLL в каталог target
. Итак, что я сделал:
- Добавлены библиотеки DLL в
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>
Однако я все еще получаю ошибку времени выполнения, что DLL отсутствует в java.library.path.
Ответы
Ответ 1
Ваш <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
.