如何通过POM设置Eclipse使用的java.library.path?

6
我正在使用maven来定义我的项目。我的一个依赖项在运行时需要本地DLL,因此它在测试和调试时都需要。这个本地DLL可在已知位置找到。我希望能够提供一个解决方案,只需一次性的设置即可适用于所有开发者,无需每个开发者手动安装。
我知道可以在“运行配置”中手动设置java.library.path,这可以让它找到本地DLL,但这需要每个开发者手动设置。
我知道也可以为给定的项目依赖项设置java.library.path,但这仅限于特定开发者。
最后,我知道可以设置surefire插件来指定java.library.path,但这只对通过maven触发的测试有用 - 这对我们的构建服务器很有用,但不能帮助在eclipse中使用JUnit运行程序的开发者进行调试或直接运行代码。
有没有出路?
2个回答

5
我发现与maven-nativedependencies-plugin配套的eclipse m2e连接器似乎可以解决这个问题。
根据mavennatives文档:
自从maven-nativedependencies-plugin的版本0.0.7以来,如果您安装了m2eclipse并配置了nativedependencies插件,则本地库的解压将自动运行,您不需要eclipse插件来解压它们。但是,为了在eclipse中设置java.library.path环境变量,您必须手动或使用eclipse插件自动完成。
这个Eclipse插件是m2eclipse的扩展,它检测是否已配置了maven插件,如果配置了,它将执行本地库的解压缩,并配置本机库位置。
如果您导入已配置mavennatives插件的maven项目,并且您有m2eclipse集成插件,则在导入时将提取本地库,在eclipse中执行clean时也将提取本地库。
因此,如果您同时使用这两个工具,则使用本机依赖项不需要手动配置,除了pom中的内容之外,只需运行应用程序即可。
如果我安装了连接器并将mavennatives添加到我的POM中,然后重新加载POM(右键单击包资源管理器中的项目>maven>更新项目),则项目的“本地库位置”将自动填充(要查看此内容,请右键单击项目>属性>Java构建路径>库>本地库位置)。
这似乎适用于调试、JUnit运行程序等。
它确实需要每个开发人员手动安装插件,但是,至少一旦安装了插件,它将为通过POM配置的任何/所有本机依赖项工作。

2

1
我认为这并没有帮助。我的 POM 中已经有了一些属性。问题在于如何让 Eclipse 或 JUnit 运行器知道它们。您提供的“set-system-properties”文档说明:“需要执行 Maven 2.0 项目。” - 我不认为这会发生在 JUnit 运行器执行时。 - bacar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接