【问题标题】:Maven partial InstallMaven 部分安装
【发布时间】:2014-07-29 15:55:12
【问题描述】:

有没有办法在构建完整的反应堆项目时选择性地指定要安装的模块?

本质上我想打包完整的反应堆内容,但只安装一些。

【问题讨论】:

  • 这听起来很奇怪,您能否更详细地描述一下您想要实现的目标以及您的项目的外观以及您为什么要这样做?

标签: maven maven-reactor


【解决方案1】:

有很多选项可以让您在 maven 中管理模块化项目。

恢复构建

如果您想告诉 Maven Reactor 从特定项目恢复构建,-rf 或 --resume-from 选项会派上用场。如果您正在处理大型多模块项目,这可能很有用 并且您想在 Reactor 中的特定项目上重新启动构建,而无需运行所有 在构建顺序中位于它之前的项目。

示例 mvn --resume-from yourmodule install

指定项目子集

-pl 或 --projects 选项允许您从多模块项目中选择项目列表。这 如果您正在处理一组特定的项目,并且您不想等待完整的项目,该选项可能会很有用 在开发周期中构建多模块项目。

示例 mvn --projects yourmodule1,yourmodule2 install

制作项目子集

如果您想运行较大构建的一部分,您可以使用 -pl 或 --projects 选项 -am 或 --also-make 选项。当您使用 -am 选项指定项目时,Maven 将 构建指定项目依赖的所有项目(直接或间接)。马文会 检查项目列表并遍历依赖关系树,找到它需要的所有项目 构建。

示例 mvn --projects sample-services --also-make install

您可以在Maven: The complete references找到更多详细信息

【讨论】:

  • 感谢您的快速回复;唉,我很清楚所有记录在案的反应器选项,并且确实将它们与指定模块子集的配置文件结合使用,但我希望有一种更优雅的方式来实现它。无论如何,谢谢。
  • @GuySegev 从您所写的内容中,我了解到您不知道如何使用模块化项目管理反应器。有关更多详细信息,请尝试向我们解释您的真正问题
【解决方案2】:

没有;一次 Maven 调用将对所有模块使用相同的阶段。

你可以链接调用;例如:

mvn package && mvn -pl web-app install

但是web-app 的依赖项将从您的本地存储库中获取,而不是从第一次调用中使用的反应器中获取。

最安全的选择是(如在Maven Modules + Building a Single Specific Module 中)使用-am-pl 仅安装特定模块及其所有依赖项:

mvn -pl web-app -am install

请注意,这仍然会安装其他模块,但只会安装构建web-app 所必需的模块。

【讨论】:

    猜你喜欢
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多