21

実行時に DLL を必要とする Maven 依存関係があります。私がやりたいことは、単にそのdllをresources/libフォルダーに入れ、そのDLLをtargetディレクトリに配置することです。だから私がやったことは次のとおりです:

  1. に追加された DLLsrc/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>
    

ただし、DLL がjava.library.pathに存在しないというランタイム エラーがまだ発生しています。

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 に答える