Maven 会自动构建其他模块吗?

Does Maven automatically build other modules?

我真的无法在任何地方找到这个特定问题的答案。

我有一个由多个模块组成的 (Maven) 项目,假设一个 core 模块(一个 jar)和一个 webapp 模块(一个 war)。

当我 运行 mvn clean package 在我的 web 应用程序上时,它会自动始终首先构建核心并且它会获取其中的任何更改吗?我必须 运行 mvn clean install 吗?还是我必须 运行 mvn clean package/install 在我的父 pom 上?

parent/module 是发布还是快照重要吗?

如果您正在使用所谓的 Multi Module Build,您应该从 parent 级别对整个项目做任何您喜欢做的事情。 在那里你可以做:

mvn clean package

它会以正确的顺序构建所有模块(假设您已经正确定义了它们之间的依赖关系)。

如果你有这样一个多模块构建你的所有模块包括。您的 parent 应该具有相同的版本号。如果你想发布一个整体,你可以简单地从 parent.

开始

您必须构建任何已更改的内容,upwards。所以,如果你改变核心,然后重建核心,然后重建你的war。如果您刚刚更改了 war,那么您只需要重建 war。清洁通常是一种很好的做法。不这样做的原因是如果您要生成一堆实体 类,这需要很长时间才能重做。

我见过很多错误,因为人们忘记清理,然后一些旧代码仍然有效,即使他们认为已经删除了它。

安装会将您的最新版本放入您的 M2 存储库,这通常也是一个好主意。 "mvn clean install"

你真的不会出错