Nexus使用Ivy缓存工件

时间:2012-04-18 07:40:33

标签: ant ivy nexus

确定;我的第一个stackoverflow问题。

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

我正在使用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非常标准。

那么,是否有可能使用常春藤这样做或者这是一个关联问题?

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

这是滥用工具吗?

1 个答案:

答案 0 :(得分:2)

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

以下 ivysettings.xml 文件配置常春藤以拉动它的依赖关系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>

“中央代理”解析程序配置为从Nexus中默认提供的默认Maven Central代理存储库中提取内容。

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