使用Maven进行C/C++项目

Bos*_*one 83 c++ maven-2 maven-plugin

我将Maven构建在业余,写得不好和坦率的群集之上 - 原始的C/C++代码(意思是一些C,一些C++).问题是 - 目前流通很多,不容易更换.构建它需要大量的部落知识(你必须从立方体到立方体才能找到如何编译/构建各种部分)并且释放是完全的噩梦.(不 - 我不打算重写它,请不要问)我的问题是 - 我应该用它maven-native-plugin来代替大量的短文件或exec-maven-plugin用来简单地执行这些吗?到目前为止,我有很好的经验,后者做.NET,不知道我是应该投资native插件还是留下来exec?如果你有"Mavenizing"C/C++的经验,我很乐意得到一些建议.

Sin*_*hot 89

我强烈推荐maven-nar-plugin.我发现它在很多方面都优于替代品.它不需要列出源文件,处理多个操作系统和体系结构,处理单元和集成测试,并且通常遵循"maven方式".它引入了一种新的包装 - NAR或"本机存档",它包含您关注的工件(.dll,.so,.a,.exe等),还包含元数据,标题等.有道理的方式.

它确实需要一些前期工作来将第三方软件打包到NAR中,但它非常简单.一旦它们是NAR,您只需使用普通的Maven依赖机制与它们链接,例如:

<dependency>
  <groupId>cppunit</groupId>
  <artifactId>cppunit</artifactId>
  <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

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

  • 看起来像maven-nar-plugin正在通过sonatype维护活动:https://issues.sonatype.org/browse/NAR (2认同)