我试图了解有关 NetBeans 与其包含的 Maven 交互的一些细节,特别是 NB 如何知道“捆绑”的 maven 在哪里,以及 maven 如何知道其本地存储库在哪里——即:在哪些配置文件中捕获这些。
这是当前 NetBeans(32 位)7.2 在 Win7 上的默认安装。安装没有设置 M2_HOME 环境变量,也没有在 PATH 中设置任何条目。
“捆绑”的 Maven 位置
NetBeans Tools > Options > Java > Maven Home 设置为“Bundled”——我猜“Bundled”这个词在某个地方映射到某个路径……那个映射在哪里?(grep 没有出现任何东西。)
当 NetBeans 运行 Maven 时,我看到输出窗口信息令我惊讶的是它没有运行位于 C:\Program Files (x86)\NetBeans 7.2\java\maven 的 maven 安装,而是运行 maven 的完整副本在 C:\Users[user]\AppData\Roaming\NetBeans\7.2\maven (\bin\mvn.bat)。
很明显,这就是“捆绑”所指的——但是当程序文件下的 NB 的树下已经包含一个时,为什么这个重复的 maven 文件树呢?
(并且 FWIW,如果 M2_HOME 尚未设置,mvn.bat 将 M2_HOME 设置为 mvn.bat 的父目录,因此解释了 M2_HOME 本身,但不是 NB 如何决定“捆绑”= mvn.bat 的路径。)
Maven 的仓库位置
- 我看到 Maven 本地存储库按预期位于 C:\Users[user].m2 ,但同样,这是在哪里指定的?
我拒绝相信捆绑和回购路径是硬编码的,所以我假设某处有一些配置文件可以捕获这些路径,我想知道它在哪里!
顺便说一句,我确实意识到回购路径可以在 maven\conf\settings.xml 中被覆盖——目前只有评论,所以不会影响任何东西。
感谢您提供任何线索。