首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从多模块pom构建单模块

从多模块pom构建单模块
EN

Stack Overflow用户
提问于 2009-10-23 19:35:47
回答 3查看 10K关注 0票数 8

有可能这样做吗?

环境:多模块pom由mm1、mm2、mm3三个模块组成。模块mm2将mm1作为依赖项。可以在没有任何错误情况下构建父pom。

问题:是否可以在不将mm1安装到本地存储库中的情况下构建单模块mm2 (即,从mm2基目录运行maven )?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-24 02:03:00

在没有自动安装的情况下,可以只构建选定的项目。你需要有多模块构建(我假设你有)。在反应器模式下,每个命令都需要从反应器的根运行。

所以在你的例子中:

mvn reactor:make -Dmake.folders=mm2

在本例中,您将构建mm2模块及其所依赖的模块(mm1)。

有用的链接:

  • Maven reactor plugin reference
  • Maven book reactor chapter

从书中的例子中,我只构建了项目persist和他的依赖项目模型。其他项目未涉及到mvn reactor:make -Dmake.folders=sample-persist

alt text http://www.sonatype.com/books/maven-book/reference/figs/web/running_aro-dependencies.png

另一个有用的命令是reactor:make-dependents,它构建依赖于X的项目。

票数 3
EN

Stack Overflow用户

发布于 2009-10-23 20:39:28

我不确定您所说的“不将mm1安装到本地存储库”到底是什么意思。你是指以前构建mm2,还是永远不构建?

有疑问的是,Maven Tips and Tricks: Advanced Reactor Options博客文章中宣布的新构建选项之一可能会有所帮助:

从Maven2.1版本开始,有一些新的

命令行选项,允许您操作Maven2.1构建多模块项目的方式。这些新选项包括:

-rf,-- Resume -from Resume reactor from specified project -pl,--projects生成指定的反应器项目,而不是所有项目-am,-rf如果指定了项目列表,则还要生成列表所需的项目,--还--make--pl如果指定了项目列表,则还要生成依赖于列表中项目的项目

我特别想到了-pl-am选项。要构建模块的子集,请从根目录运行以下命令

代码语言:javascript
运行
复制
$ mvn --projects mm2 --also-make install

然而,我不确定这是否回答了你的问题(这对我来说并不完全清楚)。

票数 14
EN

Stack Overflow用户

发布于 2009-10-23 20:06:09

这违背了Maven2的依赖原则。这样做的真正目的是什么?

但是,我们可以设想将mm2的mm1依赖项定义为system依赖项:

代码语言:javascript
运行
复制
<dependency>
    <groupId>...</groupId>
    <artifactId>mm1</artifactId>
    <version>...</version>
    <scope>system</scope>
    <systemPath>../mm1/target/</systemPath>
</dependency>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1612854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档