我想确定 Matlab 中本地 Maven 存储库的位置,并以与 mvn
命令相同的方式执行此操作。这可能吗?
另外,我不想明确地模仿整个 Maven 逻辑。
是否有我可以导入并知道 Maven 期望本地存储库位于何处的 jar 文件?
最佳答案
存储库的位置由 localRepository
定义名为 setting.xml
的配置文件条目,位于{M2_HOME}\conf\
看起来像这样:
<settings>
<!-- ... -->
<localRepository>...</localRepository>
<!-- ... -->
</settings>
如果配置文件不存在或不包含上述条目,则使用默认位置,对应于:
-
~/.m2/repository
下*NIX / MaxOS
-
C:\Documents and Settings\{USERNAME}\.m2\repository
下Windows
您唯一的解决方案是找到 setting.xml
文件并解析它以提取存储库的位置。如果后者未定义,则必须根据当前底层操作系统正确默认它。
这个过程可能很棘手,特别是如果您必须在 Matlab 代码中实现跨系统兼容性。我建议您使用 system function 的替代方案:
[status,cmdout] = system('mvn help:effective-settings');
如果命令运行没有问题,cmdout
将包含 setting.xml
的全部内容文件。一旦获得它,您就可以解析 XML 数据并找到该文件夹。
关于java - 以编程方式到本地 Maven 存储库的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47829324/