如何在多模块maven项目中编译其中的单个模块?
How to compile a single module inside it in a multi-module maven project?
项目可能是这样的:
模块A
-- pom.xml
模块B
-- pom.xml
- pom.xml
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。
项目可能是这样的:
模块A
-- pom.xml
模块B
-- pom.xml
- pom.xml
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。