maven.multiModuleProjectDirectory 是做啥用的?
Posted
技术标签:
【中文标题】maven.multiModuleProjectDirectory 是做啥用的?【英文标题】:What is maven.multiModuleProjectDirectory used for?maven.multiModuleProjectDirectory 是做什么用的? 【发布时间】:2015-06-28 23:19:04 【问题描述】:我在 SO 和 Maven 邮件列表上看到了很多关于设置 env 参数 maven.multiModuleProjectDirectory
的讨论,但我无法准确理解此设置的作用/用途。
我搜索了 google、maven 网站、文档等,但似乎找不到真正解释此参数的用途或如何利用它的参考资料。
任何人都可以解释它的目的和/或指向我的文档吗?它是在哪个版本的 maven 中引入的?
【问题讨论】:
【参考方案1】:环境变量已在 Maven 3.3.1 中引入,可从 mvn
脚本或 mvn.cmd
脚本中获得。目的是找到一个多模块结构的起点,在该结构中可以找到.mvn
位置。
这是为了使项目内部的配置成为可能,而不是从外部进行。
看看Maven 3.3.1 release notes.
更新
此变量仅在mvn
脚本中使用,既不记录也不打算供公众使用(内部实现细节)。所以我强烈建议不要使用它。否则将来可能会出现问题。
【讨论】:
谢谢。我已阅读完整的 3.3.1 发行说明,但它没有提及有关 multiModuleProjectDirectory 变量的任何内容。因此,如果我理解正确,给定.mvn
文件夹中的设置,如果我要尝试独立(而不是从根)构建子模块,我会指定这个 var 以便 maven 可以找到我的 .mvn
我的树。但是,如果我从项目根目录启动 maven,则不再需要此 var。对吗?
构建子模块由mvn -pl ...
完成,不会改变任何内容。除此之外,您不需要指定它,因为它是由脚本在内部处理的,这就是发行说明中未提及它的原因,因为您通常不需要为此烦恼。这是必要的,因为它在内部用于查找多模块构建的根文件夹。
确实我可以使用mvn -pl ...
,但也可以选择直接在模块子目录中而不是从多模块根目录中运行mvn
。或者这在多模块构建中被认为是不好的做法?
我怀疑这是一种不好的做法。这只是完成工作的另一种方式。
与 maven-embedder 一起使用:***.com/questions/33400574/…以上是关于maven.multiModuleProjectDirectory 是做啥用的?的主要内容,如果未能解决你的问题,请参考以下文章