1

行; 我的第一个 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 是否是一种好习惯?(这似乎是一个非常糟糕的做法,但唯一的选择总是一个很好的选择)

这是对工具的滥用吗?

4

1 回答 1

2

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”解析器。

于 2012-04-18T22:54:29.170 回答