如何配置NAR Maven项目
How to configure NAR Maven projects?
我正在尝试Mavenize一个带有nar-maven的C++项目,在带有MSVC的Windows上。这是一个共享的图书馆
我已经在这个原型的示例项目中成功地测试了nar-maven
所以现在,我需要为一个更大的项目使用nar-maven插件。为了成功编译,我需要添加一些参数(包括,库,预处理器定义…)。以下是我当前pom文件的示例:
<project>
...
<properties>
<skipTests>true</skipTests>
</properties>
<build>
<defaultGoal>integration-test</defaultGoal>
<plugins>
<plugin>
<groupId>com.github.maven-nar</groupId>
<artifactId>nar-maven-plugin</artifactId>
<version>3.5.0</version>
<extensions>true</extensions>
<configuration>
<options>
<option>/D_WINDOWS</option>
<option>/D_WINDLL</option>
<option>...</option>
</options>
<libraries>
<library>
<type>shared</type>
</library>
</libraries>
<tests>
<test>
<name>libblawin</name>
<link>shared</link>
</test>
</tests>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
...
</dependencies>
</project>
无论我在配置标记中添加了什么参数(options标记、includes标记…),maven都不会考虑它。事实上,当我查找用于编译源文件的命令行(使用带有mvn的-X选项)时,pom.xml中添加的选项并不包括在内
maven使用的命令行:
Executing 'C:Program Files (x86)Microsoft Visual Studio 12.0VCbinamd64cl' with arguments:
''
'/c'
'/nologo'
'/EHsc'
'/DNDEBUG'
'/MD'
'/GR'
'/FdD:NAR-projectssrttargetnarobjamd64-Windows-msvc'
'/DWIN32'
'/ID:NAR-projectssrttargetnarobjamd64-Windows-msvc'
'/ID:NAR-projectssrttargetnarobjamd64-Windows-msvc'
'/ID:NAR-projectssrtsrcmaininclude'
'/IC:Program Files (x86)Microsoft Visual Studio 12.0VCinclude'
'/IC:Program Files (x86)Microsoft Visual Studio 12.0VCatlmfcinclude'
'/IC:Program Files (x86)Windows Kits8.1Includeshared'
'/IC:Program Files (x86)Windows Kits8.1Includeum'
'/IC:Program Files (x86)Windows Kits8.1Includewinrt'
'/FoD:NAR-projectssrttargetnarobjamd64-Windows-msvclibraryExtern.1d1757c3.obj'
'include/interapp/libraryExtern.cpp'
不管怎样,我觉得我做错了什么,希望你能帮上忙。我需要找到一种方法来按照我的意愿配置我的项目。
我想好了。
我浏览了工作示例,以查看我的错误在哪里,在这个特定的示例,imagej启动器上,我们可以看到它在c标签:中添加了所有编译器配置
<configuration>
<c>
<name>gcc</name>
<includes>
<include>**/*.c</include>
</includes>
<options>
<option>-DLAUNCHER_VERSION="${project.version}"</option>
<option>-DBUILD_NUMBER="${buildNumber}"</option>
<option>-I${JAVA_HOME}/include</option>
<option>${java.os.include}</option>
<option>${stack.protector.option}</option>
<option>${architecture.option}</option>
<option>${subsystem.option}</option>
<option>${debug.option}</option>
</options>
</c>
...
所以我只添加了一个cpp标签,并在其中添加了我的选项,现在它工作得很好:
<configuration>
<cpp>
<options>
<option>/D_WINDOWS</option>
<option>/D_WINDLL</option>
<option>...</option>
</options>
</cpp>
相关文章:
- 如何使用 Maven-NAR 插件生成 CPP 二进制文件
- 用于 JUnit 测试的本机代码未使用 'nar-maven-plugin' 编译
- 避免使用MINGW编译器和NAR-Maven-Plugin避免使用机器依赖的POM
- 使用 CMake 和 Maven 构建C++和 Java 代码,并捆绑在一个罐子里
- Maven NAR插件:在路径上找不到DLL依赖项
- Maven User-Agent property and pluginRepository
- 使用Maven NAR插件对ARM进行交叉编译
- Maven NAR 插件在更新到 3.3.0 时在 Windows.h 中出现大量错误
- 在Java Spring Maven web应用程序中调用C/C++函数
- Maven cannot find git
- 如何配置NAR Maven项目
- 无法通过 Maven 和哈德逊C++项目获得构建成功