多模块Maven项目

7

如果我的项目有6个模块,是否可以只构建其中一个而不注释其他的?

编辑

由于父标签的存在,子模块本身无法工作。我需要先安装父模块才能进行构建。如何在不安装父模块的情况下实现呢?

4个回答

10

是否可以只构建其中一个项目而不需要注释掉其他的项目?

我理解你想从聚合项目(即反应堆构建)启动maven,但只想构建一个模块。这可以使用-pl, --projects project list选项实现(请参见高级反应堆选项):

mvn --projects my-submodule install

这是一个非常强大的选项,特别是当与 --also-make(同时构建所列模块依赖的项目)或 --also-make-dependents(同时构建依赖于所列模块的项目)结合使用时。根据您的更新,您可能实际上想要这样做:

mvn --projects my-submodule --also-make install

当然,从要构建的模块目录启动Maven是一种选择,但这不允许您执行上述操作,也不能构建所有模块的子集。对于这种情况,高级反应器选项是一种可行的方法。


3
打开命令行终端,进入子模块目录并执行 mvn install 命令(或者您偏爱的生命周期),就可以完成操作。

@Péter Török 我更新了我的问题..你的解决方案是迄今为止最简单的..我无法构建子模块..我需要先安装父模块,因为子模块本身不会工作,因为它依赖于父标签。 - Gandalf StormCrow
@Gandalf StormCrow,这是一个更加复杂的故事......我会谦卑地站在一旁,静观@Pascal施展他的魔法 :-) - Péter Török

2

您可以简单地进入此模块目录并运行mvn clean install来构建该模块。

但是,请注意,使用此方法时,与其他模块的依赖关系将从您的本地存储库(或企业存储库)中获取。

我们来看一个简单的例子:

project
  + commons
  + business

现在,假设你使用 mvn clean install 命令在 根目录 下构建整个项目。考虑到所有模块都是版本 1.0
现在,你要升级到版本 1.1。如果你只在 business 项目上运行 mvn clean install,它会尝试获取模块 commons1.1 版本。由于 Maven 在本地存储库中找不到任何版本为 1.1 的模块,因此会出现错误。

0

在Eclipse中,假设您已经安装了m2eclipse:右键单击要处理的模块,然后选择“运行为 -> Maven包”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接