如何从POM设置eclipse使用的java.library.path?

时间:2013-03-07 12:19:34

标签: eclipse maven pom.xml java.library.path

我正在使用maven来定义我的项目。我的一个依赖项需要在运行时使用本机DLL,因此在测试和调试时需要它。本机DLL在已知位置可用。我想要一个我可以签入一次的解决方案,并且适用于所有开发人员,而无需每个开发人员进行手动设置。

我知道我可以在“运行配置”中手动设置java.libary.path,这将允许它找到本机DLL,但这需要为每个开发人员手动设置。

我知道我也可以为给定的项目依赖项设置java.library.path,但这对于特定的开发人员来说也是本地的。

最后我知道我可以设置surefire插件来指定java.library.path,但这只适用于通过maven触发的测试 - 所以它对我们的构建服务器很有用,但不能帮助devs使用JUnit runner在eclipse中,或者想直接从eclipse调试或运行代码。

有出路吗?

2 个答案:

答案 0 :(得分: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本机将被提取。

     

因此,如果您同时使用这两种工具,则使用本机依赖项则不需要   手动配置,除了在pom中的什么,只需运行您的应用程序   它有效。

如果我安装了连接器,并将mavennatives添加到我的POM,然后重新加载pom(右键单击package explorer> maven>更新项目中的项目),则填充项目的“本机库位置”自动(看到这个,右键单击项目>属性> java构建路径>库>本机库位置)

enter image description here

这似乎适用于调试,JUnit运行程序等。

它确实要求每个开发人员都安装插件,这是手动的(如安装eclipse手册);但是,至少一次安装它将适用于通过POM为mavennative配置的任何/所有本机depdendencies。

答案 1 :(得分:2)

Properties Maven Plugin可以帮助您使用properties:set-system-properties设置系统属性来传递系统属性。

示例应如下所示: -

<properties>
    <java.library.path>some/path</java.library.path>
</properties>

我希望这可能有所帮助。