Maven-surefire-plugin, DLL и java.library.path - программирование
Подтвердить что ты не робот

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.

4b9b3361

Ответ 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.