bac*_*car 6 eclipse pom.xml maven java.library.path
我正在使用maven来定义我的项目.我的一个依赖项需要在运行时使用本机DLL,因此在测试和调试时需要它.本机DLL在已知位置可用.我想要一个我可以签入一次的解决方案,并且适用于所有开发人员,无需每个开发人员进行手动设置.
我知道我可以在"运行配置"中手动设置java.libary.path,这将允许它找到本机DLL,但这需要为每个开发人员手动设置.
我知道我也可以为给定的项目依赖项设置java.library.path,但这对于特定的开发人员来说也是本地的.
最后我知道我可以设置surefire插件来指定java.library.path,但这只适用于通过maven触发的测试 - 所以它对我们的构建服务器很有用,但是没有帮助devs在eclipse中使用JUnit runner,或者想直接从eclipse调试或运行代码.
有出路吗?
我发现与maven-nativedependencies-plugin一起使用的eclipse m2e连接器似乎解决了这个问题.
根据mavennatives文档:
从版本0.0.7的maven-nativedependencies-plugin开始,如果你安装了m2eclipse并且配置了nativedependencies插件,那么本机的解包将自动运行,你不需要使用eclipse插件来解压缩它们.但是,为了在eclipse中设置java.library.path环境变量,您必须手动或使用eclipse插件自动完成.
这个Eclipse插件是m2eclipse的扩展,它检测你是否配置了maven插件,如果你这样做,它会执行本机解包,并配置本机库位置.
如果导入配置了mavennatives插件的maven项目,并且你有m2eclipse集成插件,那么在导入时将提取本机,同样在从eclipse执行clean时,将提取本机.
因此,如果您同时使用这两种工具,使用本机依赖项不需要手动配置,除了pom中的内容,只需运行您的应用程序即可.
如果我安装了连接器,并将mavennatives添加到我的POM,然后重新加载pom(右键单击package explorer> maven> update project中的项目),项目的"本机库位置"将自动填充(要查看此内容) ,右键单击项目>属性> java构建路径>库>本机库位置)

这似乎适用于调试,JUnit运行程序等.
它确实需要每个开发人员安装插件,这是手动的(如安装eclipse手册); 但是,至少一旦安装它将适用于通过POM为mavennative配置的任何/所有本机depdendencies.
| 归档时间: |
|
| 查看次数: |
8797 次 |
| 最近记录: |