如果我的项目有6个模块,是否可以只构建其中一个而不注释其他的?
编辑
由于父标签的存在,子模块本身无法工作。我需要先安装父模块才能进行构建。如何在不安装父模块的情况下实现呢?
是否可以只构建其中一个项目而不需要注释掉其他的项目?
我理解你想从聚合项目(即反应堆构建)启动maven,但只想构建一个模块。这可以使用-pl
, --projects
project list选项实现(请参见高级反应堆选项):
mvn --projects my-submodule install
这是一个非常强大的选项,特别是当与 --also-make
(同时构建所列模块依赖的项目)或 --also-make-dependents
(同时构建依赖于所列模块的项目)结合使用时。根据您的更新,您可能实际上想要这样做:
mvn --projects my-submodule --also-make install
当然,从要构建的模块目录启动Maven是一种选择,但这不允许您执行上述操作,也不能构建所有模块的子集。对于这种情况,高级反应器选项是一种可行的方法。
mvn install
命令(或者您偏爱的生命周期),就可以完成操作。您可以简单地进入此模块目录并运行mvn clean install
来构建该模块。
但是,请注意,使用此方法时,与其他模块的依赖关系将从您的本地存储库(或企业存储库)中获取。
我们来看一个简单的例子:
project
+ commons
+ business
mvn clean install
命令在 根目录 下构建整个项目。考虑到所有模块都是版本 1.0
。1.1
。如果你只在 business
项目上运行 mvn clean install
,它会尝试获取模块 commons
的 1.1
版本。由于 Maven 在本地存储库中找不到任何版本为 1.1
的模块,因此会出现错误。在Eclipse中,假设您已经安装了m2eclipse:右键单击要处理的模块,然后选择“运行为 -> Maven包”。