【问题标题】:ivysettings.xml: add local maven pathivysettings.xml:添加本地 maven 路径
【发布时间】:2012-01-26 22:13:39
【问题描述】:

如何将本地路径(不是 URL)添加到ivysettings.xml?我需要添加我的 Maven 本地存储库(/Users/me/.m2/repository 到它。

谢谢

【问题讨论】:

    标签: java maven ivy


    【解决方案1】:

    试试下面的 ivysettings.xml 文件:

    <ivysettings>
        <settings defaultResolver="default"/>
        <property name="m2-pattern" value="${user.home}/.m2/repository/[organisation]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]" override="false" />
        <resolvers>
            <chain name="default">
                <filesystem name="local-maven2" m2compatible="true" >
                    <artifact pattern="${m2-pattern}"/>
                    <ivy pattern="${m2-pattern}"/>
                </filesystem>
                <ibiblio name="central" m2compatible="true"/>
            </chain>
        </resolvers>
    </ivysettings>
    

    它包括 Maven 中心,以防本地 Maven 存储库中缺少依赖项。

    注意:

    重用本地 Maven 存储库的好处是有限的。 Ivy 缓存从存储库中检索到的 jar。

    【讨论】:

    • 值得考虑在 ivy 模式中强制使用 .pom 扩展,就像建议的 here 一样。这样 Ivy 的 POM 转换逻辑就会启动,如果您需要参考像 master 这样的合成配置,这是相关的。
    • @mephi42 我不知道,太好了!恕我直言,使用 Maven 本地仓库是个坏主意。它的功能更像是缓存。将 ivy 和 Maven 配置为从同一个远程存储库中提取更有意义!
    【解决方案2】:

    Ivy 依赖项通过“解析器”解析。

    此页面非常适合了解它们的工作原理。

    http://ant.apache.org/ivy/history/latest-milestone/settings/resolvers.html

    具体来说:如何“解析”本地 maven 存储库?

    Ivy 有一个“FileSystemResolver”,它可以简单地从本地根路径解析,而不是获取网址。请注意,当事情变得复杂时,会有一些陷阱,例如:http://ant.apache.org/ivy/history/latest-milestone/settings/resolvers.html。解析器类似于 maven Repository 标签,因为它们定义了一个资源。

    简短的建议

    请记住,如果您使用的是 IDE,则一旦您自定义了 ivysettings.xml,您必须告诉它专门使用您的 ivysettings.xml 文件,而不是一些内部默认值。

    【讨论】:

      【解决方案3】:

      我发现在更新的 sbt 版本中你可以这样做

      sbt publish-m2
      

      【讨论】:

      • 太棒了,这个命令是如何修改 Maven 仓库的位置的?
      • 'sbt publish-m2' 发布到 ~/.m2 目录。这是你要问的吗?
      • 谢谢@Always,我试图理解为什么 SBT 没有关注 settings.xml 中的&lt;localRepository&gt;
      • 对我来说是 sbt publishM2
      【解决方案4】:

      在 0.13.7 之前,SBT 忽略了 Maven 的 settings.xml 以使用 &lt;localRepository&gt; 设置。见https://github.com/sbt/sbt/issues/1589。在某些情况下,这将避免在使用 publish-m2 时更改 ivysettings.xml 的需要。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-13
        • 2021-07-11
        • 2016-06-20
        • 2021-12-12
        • 1970-01-01
        • 2013-11-25
        • 2013-10-02
        相关资源
        最近更新 更多