将Maven用于C/C++项目

hpxqektj  于 2023-02-14  发布在  Maven
关注(0)|答案(2)|浏览(359)

我把Maven构建放在一群业余的、写得很差的、坦率地说是原始的C/C代码周围(意味着一些C,一些C)。问题是--目前有很多这种软件在流通,而且不容易被替换。构建它需要很多部落知识(你必须从一个立方体到另一个立方体,才能找到如何编译/构建各个部分),发布完全是一场噩梦。千万别这么说。
我应该使用maven-native-plugin来替换大量的短makefile,还是使用exec-maven-plugin来简单地执行这些?到目前为止,我使用pretty good experience,后者执行.NET,不知道我应该投资native插件还是继续使用exec?如果你有“Mavenizing”C/C++的经验,我很乐意得到一些建议。

yjghlzjz

yjghlzjz1#

我强烈推荐maven-nar-plugin。我发现它在很多方面都上级其他替代品。它不需要列出源文件,处理多个操作系统和架构,处理单元和集成测试,通常遵循“maven方式”。它引入了一种新的打包方式-NAR,或“本地归档”,包含您关心的工件(.dll、.so、.a、.exe等),而且还可以以有意义的方式存储元数据、头等。
将第三方软件打包到NAR中确实需要一些前期工作,但这非常简单。一旦它们成为NAR,您只需使用普通的Maven依赖机制与它们链接,例如:

<dependency>
  <groupId>cppunit</groupId>
  <artifactId>cppunit</artifactId>
  <scope>test</scope>
</dependency>

一个缺点是,它似乎没有得到积极的维护,但它功能齐全,是一个相当令人印象深刻的Maven插件创作示例。

nkcskrwz

nkcskrwz2#

在Maven(Java)中有一个等价的工具。我的建议是使用CMake + CPM进行构建和PKG管理,这是C世界中最常用的工具。作为替代,Gradle也存在于C中。
有用链接:https://medium.com/swlh/cpm-an-awesome-dependency-manager-for-c-with-cmake-3c53f4376766

相关问题