我有一个多模块 Maven 项目,它包含子模块ModuleA和ModuleB等。 ModuleA将ModuleB列为依赖项。但是,在仅构建模块A时,Maven不会解析模块B依赖关系 - 导致~/tmp2
。我想避免构建整个父级以使构建更快。我发现让它工作的唯一方法是使用exec插件和调用父项目的脚本" NoClassDefFound exception
ModuleB,ModuleA"这意味着我必须在每次依赖关系改变时更改脚本(例如添加ModuleC)。
有没有办法让Maven自然地解决兄弟模块依赖关系(没有额外的脚本,例如触发包含最少兄弟集的父项目构建)? 这个问题是否表明项目设计不好,如果是,那么什么是更好的选择呢?
答案 0 :(得分:0)
您不应该避免构建父项,因为构建父项正是在这些情况下调用依赖项解析的方式。
如果您的父级包含您不希望每次构建的许多其他子项目,请创建一个中级父级,以便您可以使用它来仅构建这两个项目。所以:
您当前的解决方案(我想):
Parent project
/ | \
A B Other projects
建议的解决方案:
Parent project
/ \
Intermediate parent Other projects
/ \
A B