0

我试图了解如何管理这种情况,假设我有一个由三个 jar(a.jar、b.jar、c.jar)组成的第三方库(best-lib),我会将这些 jar 上传到个人Artifactory服务器,(best-lib)有1.0和2.0两个版本。

我想在我的 ivy.xml 文件中拥有一个单一的依赖项来一次检索所有这些罐子,例如:

<dependencies>
    <dependency org="mycompany" name="best-lib" rev="1.0" />
</dependencies>

并且这个依赖应该添加 1.0 版的所有三个 jar(a、b 和 c)。

问题是:

  1. 这可能吗?
  2. 如何将三个 jar 上传到 artifactory 以实现此行为?
  3. 是否可以一次上传这些罐子?
  4. 人工替代解决方案也是可以接受的(例如 Nexus 或 Archivia)。

注意:我不是在构建 best-lib,我只是拥有它的 jar,而 best-lib 不是可以从公共 maven2 存储库下载的库。

谢谢。

4

1 回答 1

2

发布“best-lib”模块时,使用 ivy.xml 文件列出模块发布的 3 个 jar:

<ivy-module version="2.0">
    <info organisation="mycompany" module="best-lib"/>

    <publications>
        <artifact name="a" type="jar"/>
        <artifact name="b" type="jar"/>
        <artifact name="c" type="jar"/>
    </publications>
    ..
    ..

当你创建一个对这个模块的依赖时,ivy 会知道这个模块中有 3 个 jars。

有关如何发布 ivy 模块的示例,请参见:

更新

如果 3 个 jars 已经在您的存储库中,您可以发布一个独立的 ivy 模块,将其他 3 个作为依赖项引用:

<ivy-module version="2.0">
    <info organisation="mycompany" module="best-lib" rev="1.0"/>

    <dependences>
       <dependency org="mycompany" name="a" rev="1.0" />
       <dependency org="mycompany" name="b" rev="1.0" />
       <dependency org="mycompany" name="c" rev="1.0" />
    </dependencies>

最后,您可能需要告诉我们您的 Artifactory 存储库使用什么格式……我一直假设它是一个 ivy 存储库。如果是 Maven,那么概念是相同的,但显然服务器端我们将讨论 pom.xml 文件,而不是 ivy.xml(Ivy 支持 Maven 存储库)。

于 2012-10-14T13:48:32.170 回答