如何在多模块maven项目中编译其中的单个模块?

How to compile a single module inside it in a multi-module maven project?

项目可能是这样的:

moduleA 依赖于 moduleB。我在父 pom.xml 中设置了 <modules>,在子 pom.xml 中设置了其他配置。我可以在父目录中 运行 mvn package,但每次我在 moduleA 的目录中 运行 mvn package 都会失败。

我知道父目录中的 运行ning mvn package -pl moduleA 可以解决问题。既然 Apache Flume 允许我在其自己的目录中编译任何单个模块,为什么我的项目不能?

不是启动目标 "package",而是在根 pom(或仅模块 B)上启动目标 "install"。这会将 moduleB 放在本地存储库 (~/.m2/repository) 中,Maven 将能够在仅编译 moduleA 时获取它。然后你就只能编译moduleA了。

我遇到了这个问题:maven 会话没有声明顶级项目

当我尝试通过命令行 运行 一个模块时:- mvn clean install -pl moduleA 它正在寻找父模块,所以我尝试了这个并且它与 :- mvn clean install -pl .,moduleA 在您的情况下,您可以尝试此假设依赖项已经在 maven repo 中构建并可用,否则 mvn clean install -pl .,moduleA --also-make 应该可以工作。这将在多模块 Maven 项目中仅构建一个特定项目,正如我们指定的“。”它将构建解决问题的父 pom。