2

我试图了解有关 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 中被覆盖——目前只有评论,所以不会影响任何东西。

感谢您提供任何线索。

4

3 回答 3

3

我正在使用 NetBeans 7.2.1

它需要一点黑客攻击,但是:

  1. 关闭 NetBeans 应用程序
  2. 转到 %AppData%\Roaming\NetBeans\7.2.1\config\Preferences\org\netbeans\modules\maven\repositories
  3. 应该有两个文件:central.properties 和 local.properties 在 local.properties 中添加几行:

===

local=D:/repo/
localRepositoryPath=D:/repo/
localRepository=D:/repo/
localPath=D:/repo/
path=D:/repo/

我确信至少有一个条目应该是正确的 xD。NetBeans 会忽略不正确的条目。虽然它在重新索引后消失了,但 NetBeans 无论如何都会记住它。

于 2013-05-12T12:07:37.210 回答
0

NB中的嵌入式maven有时难以控制,有时根本不起作用。我建议你自己安装 maven。

http://maven.apache.org/download.html

安装后,只需去 NB 并告诉它新 Maven 的安装位置。

我看到 Maven 本地存储库按预期位于 C:\Users[user].m2 ,但同样,这是在哪里指定的?

这是默认设置。有关更多信息,只需花时间阅读这里的 Maven 示例

于 2012-10-27T10:59:06.573 回答
0

NetBeans maven 的默认路径在:C:\Program Files\NetBeans 7.3.1\java\maven\conf\settings.xml

<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ~/.m2/repository
<localRepository>/path/to/local/repo</localRepository>     
-->

在 Windows 上“~/”是 C:\Users\[用户名]

因此默认捆绑路径为:C:\Users\[用户名]\.m2\repository

于 2016-07-07T17:40:12.250 回答