构建具有依赖关系的Maven 3多模块相互依赖的兄弟项目 - 依赖关系未解决

时间:2015-08-10 08:20:50

标签: java maven

我有一个多模块 Maven 项目,它包含子模块ModuleA和ModuleB等。 ModuleA将ModuleB列为依赖项。但是,在仅构建模块A时,Maven不会解析模块B依赖关系 - 导致~/tmp2。我想避免构建整个父级以使构建更快。我发现让它工作的唯一方法是使用exec插件和调用父项目的脚本" NoClassDefFound exception ModuleB,ModuleA"这意味着我必须在每次依赖关系改变时更改脚本(例如添加ModuleC)。

有没有办法让Maven自然地解决兄弟模块依赖关系(没有额外的脚本,例如触发包含最少兄弟集的父项目构建)? 这个问题是否表明项目设计不好,如果是,那么什么是更好的选择呢?

1 个答案:

答案 0 :(得分:0)

您不应该避免构建父项,因为构建父项正是在这些情况下调用依赖项解析的方式。

如果您的父级包含您不希望每次构建的许多其他子项目,请创建一个中级父级,以便您可以使用它来仅构建这两个项目。所以:

您当前的解决方案(我想):

Parent project
   /    |   \
  A     B   Other projects

建议的解决方案:

             Parent project
                 /    \
Intermediate parent   Other projects
        /   \
       A     B