【问题标题】:Nexus to Cache Artifacts using Ivy使用 Ivy 缓存工件的 Nexus
【发布时间】:2012-04-29 14:32:18
【问题描述】:

好的;我的第一个 stackoverflow 问题。

我一直在尝试使用我们的本地 Nexus 从外部存储库中下载工件并自动从外部存储库中检索这些工件,以防它们不存在。并缓存它们。

我正在使用 Ant 和 Ivy 来处理依赖关系。

这个问题或多或少类似于这个问题: Ivy via Nexus proxy 我的理解的最终答案确实允许使用 nexus 作为存储库,但它没有缓存(至少对我来说不是)。

我看到很多材料围绕着这个主题徘徊,但没有一个确切的性质(遗憾的是我无法弄清楚)。

所以让我总结一下。 我正在使用使用 url 解析器的本地 nexus 存储库,因为如果我们需要发布(在某处阅读),我们应该使用 URL:

<chain name="deploy-chain">
    <url
        name="nexus"
        m2compatible="true"
    >
        <artifact pattern="${nexus.host}/${nexus.pattern}" />
        <ivy pattern="${nexus.host}/${nexus.ivy.pattern}" />
    </url>

    <ibiblio
        name="maven.public"
        m2compatible="true"
    />
</chain>

ivy.xml 和 build.xml 非常标准。

那么,是否可以使用 Ivy 来做到这一点,或者这是一个关联问题?

在我的缓存或本地存储库中检索工件后,将工件(指定的 ant 目标)发布到 Nexus 是否是一种好习惯? (这似乎是一个非常糟糕的做法,但唯一的选择总是一个很好的选择)

这是对工具的滥用吗?

【问题讨论】:

    标签: ant ivy nexus


    【解决方案1】:

    ibiblio 解析器是配置 Maven 存储库的最佳方式。

    以下 ivysettings.xml 文件配置 ivy 以提取其依赖关系 Nexus。

    <ivysettings>
        <settings defaultResolver="central-proxy"/>
        <resolvers>
            <ibiblio name="central-proxy" m2compatible="true" root="http://mynexushost/nexus/content/repositories/central/"/>
            <ibiblio name="release-repo"  m2compatible="true" root="http://mynexushost/nexus/content/repositories/releases/"/>
        </resolvers>
    </ivysettings>
    

    “central-proxy”解析器配置为从 Nexus 默认提供的默认 Maven Central 代理存储库中提取内容。

    将内容发布到 Nexus 发布存储库时,可以使用“release-repo”解析器。

    【讨论】:

    • 非常感谢马克。有效。缓存发生了,尽管我尝试了很多其他的东西,比如 URL 解析器,或者更改共享缓存等等,但似乎没有任何效果。再次感谢。
    猜你喜欢
    • 2011-07-03
    • 2016-12-23
    • 1970-01-01
    • 2015-06-19
    • 2015-10-13
    • 2015-02-04
    • 2012-11-07
    • 2014-09-11
    • 1970-01-01
    相关资源
    最近更新 更多