java - 以编程方式到本地 Maven 存储库的路径?

标签 java matlab maven

我想确定 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\repositoryWindows

您唯一的解决方案是找到 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/

相关文章:

maven - 如何将新的存储库添加到Sonatype Nexus?

java - 如何使用 Maven 在目标文件夹中创建新目录

用于关闭连接的 Java 弱引用

java - 如何修复我的 .text 字计数器中的 NullPointerException

Java:唯一的 10 位 ID

Matlab 错误 : Cannot find an exact (case-sensitive) match

linux - 从 CLI 运行 matlab 函数

matlab - 如何为 MATLAB 图形设置 'un' 粗体标题?

java - maven-osgi 项目中的 EventAdmin 为空

java - 如何将 16 位 PCM 音频字节数组转换为 double 或 float 组?