maven-nar-plugin和native-maven-plugin,哪个更好?

5
我将创建一个使用JNI的Java项目。我希望将该项目部署为独立应用程序,但有些模块也可能被其他应用程序用作库。我想支持不同的平台,并尽可能地减少烦恼。
就我所知,我可以选择maven-nar-plugin和native-maven-plugin之间进行选择。maven-nar-plugin已经一年半没有更新了,而native-maven-plugin对我来说似乎不太友好。
您是否有任何使用它们的经验或建议我应该使用哪个?

GitHub页面已于2010年11月7日进行了更新... - khmarbaise
没错。我最初找到的是这个页面 https://github.com/sonatype/maven-nar-plugin 但你说得对,这个仓库 https://github.com/duns/maven-nar-plugin 最近更新了。 - Cephalopod
1
值得一提的是:maven-nar-plugin的开发现已经转移到了自己的GitHub组织,将多个GitHub分支合并为一体。 - ctrueden
3个回答

5
我只使用maven-nar-plugin来创建独立的C/C++应用程序,但它对此非常有效。至于JNI,我已经在一个相当大的应用程序中使用native-maven-plugin几年了。我们使用它来允许我们的Java应用程序与只提供C API的其他应用程序进行交互。我实际上发现它非常易于使用。文档相当不错,并解释了基本用法,但您仍然需要处理C编译器和链接器以及构建所需的任何选项。我们只传递编译器和链接器命令和选项、源位置和javah文件位置,它就可以工作了。我必须说,在我们经历了所有与JNI相关的痛苦之后,这个maven插件是少数没有大麻烦的东西之一。

1

本演示文稿的第三张幻灯片介绍了斯坦福线性加速器中心的Mark Donszelmann开发的NAR插件,比较了native-maven-plugin和maven-nar-plugin。引用第三张幻灯片上的内容,native-maven-plugin的优缺点如下:

优点

  • 高度可配置

缺点

  • 不能直接运行(没有默认值)
  • 没有二进制依赖项
  • 不跨平台(不同平台需要不同的配置文件)

1

我已经使用了一年的native-maven-plugin来交叉编译C和C++源代码(每个平台选项都有一个配置文件,例如编译器,编译器选项,链接器选项等)。 它的效果非常好,但我感觉自己很孤单。 现在,我不明白为什么C/C++开发人员仍然使用过时的make或cmake工具。 Maven在管理版本和依赖项方面更加优秀...


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