maven.multiModuleProjectDirectory 是做啥用的?

     2023-02-26     291

关键词:

【中文标题】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/…