21

我有一个 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>
    

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

4

1 回答 1

18

<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

于 2013-03-04T11:05:47.170 回答