问题标签 [maven-nar-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2031 浏览

c++ - 使用 Maven NAR 插件在 Windows 上链接 DLL

我正在尝试使用 Maven NAR 插件构建一个非常简单的 C++ 程序。我已经设置了一个 Maven 模块来构建共享库,另一个用于在库中链接并构建使用它的可执行文件。在 Mac 上构建效果很好,我可以运行该程序。不幸的是,使用 MS Visual C++(免费版)在 Windows (XP) 上构建失败并出现链接器错误。两台机器(除了操作系统和编译器)配置的唯一区别是我在 Windows 机器上使用 Maven 构建之前运行 vcvars32.bat。这是我得到的错误:

NAR 插件输出的链接器命令如下所示:

我希望它应该列出由我的共享库模块生成的 DLL,但它不存在。DLL 的 NAR 在可执行文件的目标目录中解压缩,应该是这样。

为 Windows 配置 NAR 插件的任何帮助将不胜感激。或者,显示如何正确执行链接器的命令行会很有用,因此我可以回填 NAR 配置来实现它。谢谢。

我的共享库模块:

计算器.h

计算器.cc

pom.xml(片段):

我的可执行模块:

主文件

pom.xml(片段)

0 投票
1 回答
2079 浏览

java - How do I add a NAR dependency to a maven pom file?

I'm trying to use JNI, and I'm using the maven-nar-plugin to package up the C++ code into a NAR. Now, I want to include this code in another Java project. How do I go about doing this properly?

0 投票
3 回答
4030 浏览

java - maven-nar-plugin vs native-maven-plugin,哪个更好?

我将创建一个使用 JNI 的 java 项目。我想将项目部署为独立应用程序,但某些模块也可能用作其他应用程序的库。我想支持不同的平台,一切都应该尽可能轻松。

据我所见,我可以在 maven-nar-plugin 和 native-maven-plugin 之间进行选择,它已经有一年半没有更新了,而 native-maven-plugin 对我来说似乎不太友好。

您对其中之一有任何经验或我应该使用的建议吗?

0 投票
1 回答
1392 浏览

java - 在 webapp 中使用原生 Maven 工件 (nar)

我有一个使用 maven-nar 插件构建和打包的本机共享库。这很好用并且建立在 Linux/MacOSX/Windows 上。我还定义了一个 JNI 库,也是使用 maven-nar 构建的,它包装了共享库。这两者都是作为 NAR 工件生成的,并且需要 maven-nar 插件才能使用。

当从非 NAR 打包的项目中声明对这些 NAR 的依赖时,就会出现问题。maven-nar 插件似乎从未被调用过。只有当我将项目的打包更改为 NAR 时,maven-nar 插件才会启动。这使得 NAR 打包似乎需要具有传染性才能工作,如果存在 NAR 依赖项,则所有上游项目都需要进行 NAR 打包。这是正确的还是我错过了什么?

使用 maven-nar 插件生成的本机共享库和 JNI 工件能否成功用于 Web 应用程序,即 WAR 中?如果它们可以在 WAR 中使用和部署,它是如何完成的?否则,手动将本机库放置在应用服务器上 java.library.path 中某个位置的唯一选择是什么?

这是依赖于 NAR JNI 工件的项目的 POM 片段:

0 投票
3 回答
18848 浏览

java - 将 JNI 库添加到本地 Maven 存储库

我希望使用 Maven 将 JNI 库,包括其共享对象 (.so) 文件添加到我的项目中。不幸的是,它还没有在公共存储库上,所以我想我必须自己在本地存储库上安装它才能让它工作。

我如何着手将 Maven 中的本机部分包含在我的项目中(并最终使用 copy-dependencies 插件导出)。这是一个标准的 J2SE 应用程序(不是一个 Web 应用程序),带有包装 .jar?

我要添加的库是junixsocket,以防万一它有助于了解。它有一个 .so(本机库)组件和 Java .jar 组件。

我遇到了maven-nar-plugin,它似乎针对原生构建,但似乎更倾向于从代码构建 JNI 项目,而不是捆绑第 3 方 JNI 库,我无法将拼图拼凑在一起.

我该怎么做:

  1. 将这些安装在我的本地存储库中,具有 .jar 取决于 .so 库。
  2. 在 POM 文件中包含依赖项(在 .jar 和 .so 上)。

谢谢。

0 投票
1 回答
715 浏览

java - 找不到由 maven nar 插件创建的依赖项

我用 java 代码(本机方法)和 C 代码创建了一个 jni 项目。

maven nar 插件会生成一个仅包含 java 代码的 jar 文件和一个包含正确本机代码的 nar 文件。

但是,当我想从另一个项目中引用这个项目/模块时,我收到一个错误,即找不到依赖项。在检查我的本地存储库后,我注意到我只有 java 代码和本机代码的 nar 文件。如何引用此依赖项,它会自动包含本机代码吗?

0 投票
1 回答
3444 浏览

c++ - 使用 maven-nar-plugin 在 Maven 中构建 C++ 项目

有没有人使用 maven-nar-plugin 为不同平台构建 C++ 代码,使用不同的编译器?如果有人请给我有关此的更多信息。我只是想知道如何使用 maven 为不同平台构建 NAR 文件。我知道为了能够在特定平台上构建项目,您应该在该平台上运行构建,并使用该平台的特定编译器和链接器。但是我的经验与 Java 项目和 Maven 相关,并且您已经知道 Java 是非常可移植的平台,所以直到现在我还没有遇到过像瘦这样的问题。因此,任何有关如何使用 maven-nar-plugin 构建项目的帮助和详细信息都将不胜感激!谢谢

0 投票
1 回答
822 浏览

c++ - Maven NAR 插件:在路径上找不到 DLL 依赖项

我正在尝试使用 Maven 和 NAR 插件构建和测试 DLL。我正在构建的 DLL 依赖于另一个 DLL,我也使用 NAR 插件构建了该 DLL。这是我的POM:

如果我删除对它的依赖com.mycompany:shared-library——同时删除想要调用它的代码——那么它就可以正常工作。ProjectTest正常运行并执行应有的操作。但是由于存在依赖项,maven 无法运行测试,因为它找不到shared-library. 它因错误而崩溃0xc0000135

当我在调试模式下运行 Maven 时,我可以看到当它编译测试时,它正确地将两个 DLL 的头文件的包含路径添加到编译器命令中。当它链接测试时,它会正确地将两个 DLL 的导出库添加到链接器命令中。Maven 执行测试时会出现问题:Maven 想要将 DLL 的路径添加到系统路径,它这样做了 - 但它只添加了myprojectDLL 的路径。它不会添加shared-libraryDLL 的路径。因此崩溃。

这是 maven-nar-plugin 中的一个已知问题吗?我还听说它暗示有一些 NAR 插件的分叉漂浮在周围。除了我正在使用的插件之外,这个问题是否可以在某些版本的插件中得到解决?还是有一些可以推荐的解决方法?

0 投票
1 回答
2156 浏览

maven-2 - Maven:在 nar-plugin 中,你能指定从哪里获取包含的内容吗?

我有一个包含多个子模块和子子模块的项目,其中包含 java 和本地语言代码(主要是本地语言)。为了处理这个本机代码,我使用maven-nar-plugin. 现在,我没有在本地存储库中编译本机代码所需的所有包含。有没有给目录提供目录maven-nar-plugin并包含其中的所有内容?

我已经在模块的pom中使用了<systemIncludePaths>and <includePaths>,但它仍然无法编译。

如果有比我要走的方向更简单的方法,请解释一下。

0 投票
2 回答
304 浏览

maven - 需要解释maven错误请

http://blog.bigpixel.ro/2012/07/building-cc-applications-with-maven/comment-page-1/#comment-8196

我正在按照上面的示例进行 maven nar 插件,但是在执行 mvn 包时出现以下错误

“找不到工件 net.sf.antcontrib:cpptasks-parallel:jar:1.0-beta-5-parallel-1-SNAPSHOT”,但我在 ~/.m2/repository 中看到以下文件夹树及其内容...是什么赋予了?