我将创建一个使用JNI的java项目。我希望将项目部署为独立的应用程序,但一些模块也可能用作其他应用程序的库。我想要支持不同的平台,而且一切都应该尽可能的轻松。
据我所知,我可以在maven-nar-plugin和native-maven-plugin之间进行选择,前者已经一年半没有更新了,而后者对我来说似乎不太友好。
你有没有使用其中一个的经验或者我应该使用的建议?
发布于 2011-07-17 06:15:45
我只将maven-nar-plugin用于独立的C/C++应用程序,但它在这方面工作得很好。
至于JNI,我已经在一个相当大的应用程序上使用native-maven-plugin好几年了。我们使用它来允许我们的Java应用程序与其他只提供APIs的应用程序进行交互。实际上,我发现它对用户非常友好。documentation非常好,并解释了基本用法,但您仍然需要处理C编译器和链接器以及构建所需的任何选项。
我们只需向它传递编译器和链接器命令和选项、源代码位置和javah文件位置,它就可以工作了。我不得不说,尽管我们已经经历了JNI的所有痛苦,maven插件是为数不多的几个没有大麻烦的事情之一。
发布于 2012-09-15 02:36:51
斯坦福线性加速器中心的Mark Donszelmann在this presentation上关于NAR插件的第三张幻灯片比较了原生maven- Plugin和maven-nar-plugin。引用幻灯片3中的原生maven-plugin的优缺点:
的优点
缺点
发布于 2014-03-02 06:21:48
自从一年以来,我已经使用了很多原生maven插件来交叉编译C和C++源代码(每个平台选项都有一个配置文件,比如编译器、编译器选项、链接器选项等)。它的效果就像一个护身符,但在我的情况下我感觉很孤单。现在,我不明白为什么C/C++开发人员仍然使用另一个时代的make或cmake工具。Maven在管理版本和依赖性方面做得更好……
https://stackoverflow.com/questions/6622625
复制相似问题