Maven NAR插件:在路径上找不到DLL依赖项
Maven NAR plugin: DLL dependency not found on path
我正在尝试使用Maven和NAR插件构建和测试一个DLL。我正在构建的DLL依赖于另一个DLL,我也是使用NAR插件构建的。这是我的POM:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>myproject</artifactId>
<packaging>nar</packaging>
<name>My Project</name>
<version>1.0.0-SNAPSHOT</version>
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.codeswarm</groupId>
<artifactId>maven-nar-plugin</artifactId>
<version>20121119</version>
<extensions>true</extensions>
<configuration>
<cpp>
<defines>
<define>DLLEXPORT</define>
</defines>
</cpp>
<libraries>
<library>
<type>shared</type>
</library>
</libraries>
<tests>
<test>
<name>ProjectTest</name>
<link>shared</link>
</test>
</tests>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>shared-library</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>nar</type>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
如果我删除了对com.mycompany:shared-library
的依赖,也删除了想要调用它的代码,那么它就可以正常工作。ProjectTest
正常运行,并按照它应该做的去做。但由于存在依赖关系,maven无法运行测试,因为它找不到shared-library
。它崩溃,出现错误0xc0000135
。
当我在调试模式下运行Maven时,我可以看到当它编译测试时,它正确地将两个DLL的头文件的include路径添加到编译器命令中。当它链接测试时,它会将两个DLL的导出库正确地添加到链接器命令中。当Maven执行测试时,问题就出现了:Maven想将DLL的路径添加到系统路径中,它这样做了,但它只添加了myproject
DLL的路径。它不会将路径添加到shared-library
DLL。因此发生了坠机事件。
这是maven-nar插件中已知的问题吗?我还听说有人建议NAR插件的一些分支四处浮动;这个问题可能在我使用的插件之外的其他版本中得到修复吗?或者有什么可以推荐的变通方法吗?
发现这是一个已知问题:https://issues.sonatype.org/browse/NAR-189
相关文章:
- 加载"D:UsersPublicDocumentsopencvbuildx64vc14binopencv_world340d.dll",找不到或打开PDB文件
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 找不到 sdl2.dll
- Qt应用程序找不到第三方DLL并崩溃
- 链接器找不到导入的 DLL 的 LIB 文件
- 从Windows 10编译VS2017在Windows 7和…上部署..找不到DLL
- 提升 Python 找不到 dll 文件
- CMAKE链接在Windows上共享库(LIB),但找不到DLL
- Windows找不到DLL在路径中的目录中以为其
- 找不到 DLL 入口点
- Maven NAR插件:在路径上找不到DLL依赖项
- 使用Visual Studio 11 RC调试时找不到DLL依赖项
- 执行程序时找不到 DLL (c++)
- 错误 LNK2019:未解析的外部符号链接器找不到 DLL
- WinDbg 表示在映像列表中找不到".dll"
- c# / c++在相同的解决方案- DllImport找不到DLL
- exe路径中找不到DLL
- Azure WebJob 找不到 DLL
- 为什么当我只使用静态.lib时,Windows会告诉我找不到.dll文件