2011-07-08 33 views
4

我將創建一個使用JNI的java項目。我想將該項目部署爲獨立應用程序,但也可以將某些模塊用作其他應用程序的庫。 我想支持不同的平臺,一切都應儘可能無痛。maven-nar-plugin vs native-maven-plugin,哪個更好?

據我所知,我可以在maven-nar-plugin之間進行選擇,maven-nar-plugin現在還沒有更新一年半,而native-maven-plugin似乎不太方便用戶使用我。

你有任何經驗與我們應該使用他們之一或建議?

+0

GitHub頁面已更新於2010年11月7日... – khmarbaise

+0

的確如此。我最初發現這個頁面https://github.com/sonatype/maven-nar-plugin,但你是對的,這個存儲庫https://github.com/duns/maven-nar-plugin最近更新。 – Cephalopod

+1

值得一提的是:maven-nar-plugin的開發已經轉移到[它自己的GitHub組織](https://github.com/maven-nar/maven-nar-plugin),統一了幾個GitHub分支。 – ctrueden

回答

4

我只使用maven-nar插件獨立的C/C++應用程序,但它工作得很好。

至於JNI,我已經使用了native-maven插件幾年,現在已經在一個可觀的應用程序中使用。我們使用它來允許我們的Java應用程序與僅提供C API的其他應用程序交互。我已經發現它非常友好。 documentation非常好,並解釋了基本用法,但您仍然必須處理C編譯器和鏈接器以及構建所需的任何選項。

我們只是通過它編譯器和鏈接器的命令和選項,源位置和javah文件的位置,它的工作原理。我不得不說,在我們用JNI經歷的所有痛苦中,maven插件是少數幾個並不是很麻煩的事情之一。

1

關於Stanford Linear Accelerator Center的Mark Donszelmann的NAR插件this presentation的第三張幻燈片比較了native-maven-plugin和maven-nar-plugin。從幻燈片3報價時,本機Maven的插件的利弊:

優點

  • 非常方便地配置

缺點

  • 沒用完的該框(無默認值)
  • 沒有二進制相關性
  • 不是跨平臺(不同的配置爲不同的平臺)
1

因爲我已經一年用了很多原生的maven-plugin的交叉編譯的C和C++源代碼(使用每個平臺的輪廓像編譯器,編譯器選項,鏈接器選項等選項)。 它像一個魅力,但我覺得我的情況很孤單。 現在,我不明白爲什麼C/C++開發人員仍然使用來自其他時代的make或cmake工具。 Maven對管理版本和依賴關係非常好...