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

时间:2013-03-04 10:48:06

标签: maven

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

  1. src/main/resources/lib
  2. 添加了DLL
  3. 修改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>
    
  4. 但是我仍然遇到运行时错误, java.library.path 中没有DLL。

1 个答案:

答案 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