我想在Matlab中确定本地maven存储库的位置,并以mvn
命令执行的方式执行此操作。这可能吗?
另外,我不想明确地像整个Maven逻辑。
我可以导入任何罐子并知道Maven期望本地存储库位于哪里吗?
答案 0 :(得分:1)
存储库的位置由名为localRepository
的配置文件的setting.xml
条目定义,该文件位于{M2_HOME}\conf\
,如下所示:
<settings>
<!-- ... -->
<localRepository>...</localRepository>
<!-- ... -->
</settings>
如果配置文件不存在或不包含上述条目,则使用默认位置,对应于:
~/.m2/repository
位于*NIX / MaxOS
下
{li> C:\Documents and Settings\{USERNAME}\.m2\repository
位于Windows
下
唯一的解决方案是找到setting.xml
文件并解析它以提取存储库的位置。如果未定义后者,则必须根据当前的基础操作系统对其进行适当的defaultize。
这个过程可能很棘手,特别是如果您必须在Matlab代码中实现跨系统兼容性。我建议你选择system function:
[status,cmdout] = system('mvn help:effective-settings');
如果命令运行没有问题,cmdout
将包含setting.xml
文件的全部内容。获得后,您可以解析XML数据并找到该文件夹。