以编程方式到本地maven存储库的路径?

时间:2017-12-15 09:29:07

标签: java matlab maven

我想在Matlab中确定本地maven存储库的位置,并以mvn命令执行的方式执行此操作。这可能吗?

另外,我不想明确地像整个Maven逻辑。

我可以导入任何罐子并知道Maven期望本地存储库位于哪里吗?

1 个答案:

答案 0 :(得分:1)

存储库的位置由名为localRepository的配置文件的setting.xml条目定义,该文件位于{M2_HOME}\conf\,如下所示:

<settings>
    <!-- ... -->
    <localRepository>...</localRepository>
    <!-- ... -->
</settings>

如果配置文件不存在或不包含上述条目,则使用默认位置,对应于:

    {li> ~/.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数据并找到该文件夹​​。