在maven多模块项目中,建议使用软件包或安装

在maven多模块项目中,建议使用软件包或安装,maven,maven-3,Maven,Maven 3,我有一个maven多模块项目 <modules> <module>A</module> <module>B</module> <module>C</module> </modules> A. B C 模块C取决于模块A。在这个项目结构中,您可以让我知道建议使用软件包或安装。我没有任何其他要求与其他项目共享此项目。在多个模块上启动Maven命令时,如果一个模块中指定的依赖项作为同一命令中生成

我有一个maven多模块项目

<modules>
 <module>A</module>
 <module>B</module>
 <module>C</module>
</modules>

A.
B
C

模块C取决于模块A。在这个项目结构中,您可以让我知道建议使用软件包或安装。我没有任何其他要求与其他项目共享此项目。

在多个模块上启动Maven命令时,如果一个模块中指定的依赖项作为同一命令中生成的项目可用,Maven将使用当前生成的输出作为依赖项,而不是本地存储库中的JAR


因此,无需使用
install
来使模块的更改对依赖于它的模块可用,只要这些模块始终构建在一起。

在多个模块上启动Maven命令时,如果一个模块中指定的依赖项作为同一命令中构建的项目可用,Maven将使用当前构建的输出作为依赖项,而不是本地存储库中的JAR


因此,不必使用
install
来根据模块的不同对模块进行更改,只要这些模块始终构建在一起。

当所有模块构建在一起时,使用包就足够了,因为如果它们构建在同一个反应堆内,Maven将链接项目。但我始终建议使用
安装
,这样当您仅构建子模块时,其依赖关系将是最新的。我们不单独构建子模块。在并行构建的情况下,这种行为如何?如果并行是指多线程(
-T
选项),Maven将只并行化可以并行的部分。例如,如果模块C依赖于B,B依赖于A,那么将不会有任何并行,A将被构建,然后B再C。反应堆部分应该没有差异,如果项目检测到依赖关系也是在同一个过程中构建的,那么它将使用reactor输出,而不是本地repo JAR。您能否将注释作为答案发布,以便我可以接受它?当所有模块都构建在一起时,使用包就足够了,因为Maven将链接在同一个reactor中构建的项目。但我始终建议使用
安装
,这样当您仅构建子模块时,其依赖关系将是最新的。我们不单独构建子模块。在并行构建的情况下,这种行为如何?如果并行是指多线程(
-T
选项),Maven将只并行化可以并行的部分。例如,如果模块C依赖于B,B依赖于A,那么将不会有任何并行,A将被构建,然后B再C。反应堆部分应该没有差异,如果项目检测到依赖关系也是在同一个过程中构建的,那么它将使用reactor输出而不是本地repo JAR。您能将这些注释作为答案发布,以便我可以接受它吗?我会将其用法总结为。永远不要使用
mvn安装
只使用
mvn软件包
。我将把它的用法总结为。切勿使用
mvn安装
仅使用
mvn软件包