使用多种模块变体对C ++多模块项目进行Mavenizing的正确方法是什么?

时间:2017-08-28 13:24:10

标签: maven

也许我正试图将一个圆钉推入一个方孔(正如我的一些研究建议的那样)但是我无法找到任何方法来正确地确认或否认我想要做的事情是否可能或合理使用Maven 。遗憾的是,改变项目的性质不是一种选择。不好意思是冗长,但我想确保我正确解释这种情况。我也有点像个新手。

我有一个多模块项目,其可交付成果是每个模块的单独.exe文件。该项目具有不同的功能,具体取决于客户端。大多数是相同的,但一些模块将包括或排除代码的某些部分。

超简化示例

  • 客户A
    • 模块1
    • 单词数
      • 具有特征x,特征y
  • 客户B
    • 模块1
    • 单词数
      • 具有特征x,特征z

目前,它是在预配置​​的VisualStudio项目中使用一些调用msbuild的批处理文件构建的,这些项目添加了各个功能的源文件夹。

是否有Maven-ish单独构建不同版本的方法,而不必像下面的示例那样存储重复的代码?

project
 +- root
 |  +- pom.xml
 +- Module1
 |  +- pom.xml
 |  +- src 
 |  |  +- main
 |  |  |  +- c++
 |  |  |  +- include
 + Module2A
 |  +- pom.xml
 |  +- src 
 |  |  +- main
 |  |  |  +- c++
 |  |  |  |    +- feature x
 |  |  |  |    +- feature y
 |  |  |  +- include
 + Module2B
 |  +- pom.xml
 |   +- src
 |  |  +- main
 |  |  |  +- c++
 |  |  |  |    +- feature x
 |  |  |  |    +- feature z
 |  |  |  +- include

Module2A和Module2B都需要输出Module2.exe

我可能尝试使用的方式是配置文件或某种继承的pom结构,但似乎都不符合要求。我真的很感激有人对技术或插件有任何见解来帮助解决这个问题。

0 个答案:

没有答案